用了Elasticsearch,一口气上5T

es6.4.0版本,用自定义的all字段查询时,怎么给all字段中某些字段添加boost

Elasticsearch | 作者 seigo_chan | 发布于2018年10月23日 | 阅读数:2385

elasticsearch 版本6.4.0
部分mappings
 
"product_name": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart",
"boost": 10,
"copy_to": "keyword_query"
},
"standard": {
"type": "text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart",
"copy_to": "keyword_query"
},
"keyword_query":{
"type":"text",
"analyzer": "ik_max_word",
"search_analyzer": "ik_smart"
},
在创建索引时候试着给product_name字段设置boost(文档不建议这么做,目前没找到其他方法),查询的时候用matchquery
查询keyword_query 字段,给product_name设置的boost不起作用
已邀请:

rochy - rochy_he

赞同来自: seigo_chan

你这里的 copy_to 是吧全部字段的值拼接到一个字段里面了,你在单个字段上设置的 boost 肯定没办法起作用的;
如果你希望每个字段权重不同,你可以使用 boolQuery 的多个 should 语句;
每个语句里面使用 matchQuery 或者 multiMatchQuery 来进行匹配,这样你每一个字段的权重都可以进行自定义。

要回复问题请先登录注册