集成ik分析器
This commit is contained in:
parent
9523533c99
commit
a76e46e57b
@ -1,7 +1,11 @@
|
|||||||
package com.macro.mall.search.domain;
|
package com.macro.mall.search.domain;
|
||||||
|
|
||||||
import com.macro.mall.model.PmsProductAttributeValue;
|
import com.macro.mall.model.PmsProductAttributeValue;
|
||||||
|
import org.springframework.data.annotation.Id;
|
||||||
import org.springframework.data.elasticsearch.annotations.Document;
|
import org.springframework.data.elasticsearch.annotations.Document;
|
||||||
|
import org.springframework.data.elasticsearch.annotations.Field;
|
||||||
|
import org.springframework.data.elasticsearch.annotations.FieldIndex;
|
||||||
|
import org.springframework.data.elasticsearch.annotations.FieldType;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
@ -11,18 +15,25 @@ import java.util.List;
|
|||||||
* 搜索中的商品信息
|
* 搜索中的商品信息
|
||||||
* Created by macro on 2018/6/19.
|
* Created by macro on 2018/6/19.
|
||||||
*/
|
*/
|
||||||
@Document(indexName = "pms", type = "product")
|
@Document(indexName = "pms", type = "product",shards = 1,replicas = 0)
|
||||||
public class EsProduct implements Serializable {
|
public class EsProduct implements Serializable {
|
||||||
private static final long serialVersionUID = -1L;
|
private static final long serialVersionUID = -1L;
|
||||||
|
@Id
|
||||||
private Long id;
|
private Long id;
|
||||||
|
@Field(index = FieldIndex.not_analyzed,type = FieldType.String)
|
||||||
private String productSn;
|
private String productSn;
|
||||||
private Long brandId;
|
private Long brandId;
|
||||||
|
@Field(index = FieldIndex.not_analyzed,type = FieldType.String)
|
||||||
private String brandName;
|
private String brandName;
|
||||||
private Long productCategoryId;
|
private Long productCategoryId;
|
||||||
|
@Field(index = FieldIndex.not_analyzed,type = FieldType.String)
|
||||||
private String productCategoryName;
|
private String productCategoryName;
|
||||||
private String pic;
|
private String pic;
|
||||||
|
@Field(analyzer = "ik_max_word",type = FieldType.String)
|
||||||
private String name;
|
private String name;
|
||||||
|
@Field(analyzer = "ik_max_word",type = FieldType.String)
|
||||||
private String subTitle;
|
private String subTitle;
|
||||||
|
@Field(analyzer = "ik_max_word",type = FieldType.String)
|
||||||
private String keywords;
|
private String keywords;
|
||||||
private BigDecimal price;
|
private BigDecimal price;
|
||||||
private Integer sale;
|
private Integer sale;
|
||||||
|
@ -105,11 +105,11 @@ public class EsProductServiceImpl implements EsProductService {
|
|||||||
}
|
}
|
||||||
//搜索
|
//搜索
|
||||||
FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery()
|
FunctionScoreQueryBuilder functionScoreQueryBuilder = QueryBuilders.functionScoreQuery()
|
||||||
.add(QueryBuilders.matchPhraseQuery("name", keyword),
|
.add(QueryBuilders.matchQuery("name", keyword),
|
||||||
ScoreFunctionBuilders.weightFactorFunction(1000))
|
ScoreFunctionBuilders.weightFactorFunction(1000))
|
||||||
.add(QueryBuilders.matchPhraseQuery("subTitle", keyword),
|
.add(QueryBuilders.matchQuery("subTitle", keyword),
|
||||||
ScoreFunctionBuilders.weightFactorFunction(500))
|
ScoreFunctionBuilders.weightFactorFunction(500))
|
||||||
.add(QueryBuilders.matchPhraseQuery("keywords", keyword),
|
.add(QueryBuilders.matchQuery("keywords", keyword),
|
||||||
ScoreFunctionBuilders.weightFactorFunction(200))
|
ScoreFunctionBuilders.weightFactorFunction(200))
|
||||||
.scoreMode("sum").setMinScore(10f);
|
.scoreMode("sum").setMinScore(10f);
|
||||||
if (StringUtils.isEmpty(keyword)) {
|
if (StringUtils.isEmpty(keyword)) {
|
||||||
|
@ -23,7 +23,7 @@
|
|||||||
p.recommand_status recommandStatus,
|
p.recommand_status recommandStatus,
|
||||||
p.stock stock,
|
p.stock stock,
|
||||||
p.promotion_type promotionType,
|
p.promotion_type promotionType,
|
||||||
P.keywords keywords
|
P.keywords keywords,
|
||||||
p.sort sort,
|
p.sort sort,
|
||||||
a.id attr_id,
|
a.id attr_id,
|
||||||
a.value attr_value,
|
a.value attr_value,
|
||||||
|
@ -2,19 +2,24 @@ package com.macro.mall.search;
|
|||||||
|
|
||||||
import com.macro.mall.search.dao.EsProductDao;
|
import com.macro.mall.search.dao.EsProductDao;
|
||||||
import com.macro.mall.search.domain.EsProduct;
|
import com.macro.mall.search.domain.EsProduct;
|
||||||
|
import com.macro.mall.search.repository.EsProductRepository;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
|
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
|
||||||
import org.springframework.test.context.junit4.SpringRunner;
|
import org.springframework.test.context.junit4.SpringRunner;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@RunWith(SpringRunner.class)
|
@RunWith(SpringRunner.class)
|
||||||
@SpringBootTest
|
@SpringBootTest
|
||||||
public class MallSearchApplicationTests {
|
public class MallSearchApplicationTests {
|
||||||
@Autowired
|
@Autowired
|
||||||
private EsProductDao productDao;
|
private EsProductDao productDao;
|
||||||
|
@Autowired
|
||||||
|
private ElasticsearchTemplate elasticsearchTemplate;
|
||||||
@Test
|
@Test
|
||||||
public void contextLoads() {
|
public void contextLoads() {
|
||||||
}
|
}
|
||||||
@ -23,5 +28,11 @@ public class MallSearchApplicationTests {
|
|||||||
List<EsProduct> esProductList = productDao.getAllEsProductList(null);
|
List<EsProduct> esProductList = productDao.getAllEsProductList(null);
|
||||||
System.out.print(esProductList);
|
System.out.print(esProductList);
|
||||||
}
|
}
|
||||||
|
@Test
|
||||||
|
public void testEsMapping(){
|
||||||
|
elasticsearchTemplate.putMapping(EsProduct.class);
|
||||||
|
Map mapping = elasticsearchTemplate.getMapping(EsProduct.class);
|
||||||
|
System.out.println(mapping);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user