ElasticSearch进阶(四)结构化搜索_在案例中使用terms搜索多个值以及多值搜索结果优化

term: {"field": "value"}
terms: {"field": ["value1", "value2"]}

类似于sql中的in
select * from tbl where col in ("value1", "value2")

1、为帖子数据增加tag字段

POST /forum/article/_bulk
{ "update": { "_id": "1"} }
{ "doc" : {"tag" : ["java", "hadoop"]} }
{ "update": { "_id": "2"} }
{ "doc" : {"tag" : ["java"]} }
{ "update": { "_id": "3"} }
{ "doc" : {"tag" : ["hadoop"]} }
{ "update": { "_id": "4"} }
{ "doc" : {"tag" : ["java", "elasticsearch"]} }

2、搜索articleID为KDKE-B-9947-#kL5或QQPX-R-3956-#aD8的帖子,搜索tag中包含java的帖子

ElasticSearch进阶(四)结构化搜索_在案例中使用terms搜索多个值以及多值搜索结果优化_第1张图片

ElasticSearch进阶(四)结构化搜索_在案例中使用terms搜索多个值以及多值搜索结果优化_第2张图片

3、优化搜索结果,仅仅搜索tag只包含java的帖子

POST /forum/article/_bulk
{ "update": { "_id": "1"} }
{ "doc" : {"tag_cnt" : 2} }
{ "update": { "_id": "2"} }
{ "doc" : {"tag_cnt" : 1} }
{ "update": { "_id": "3"} }
{ "doc" : {"tag_cnt" : 1} }
{ "update": { "_id": "4"} }
{ "doc" : {"tag_cnt" : 2} }

ElasticSearch进阶(四)结构化搜索_在案例中使用terms搜索多个值以及多值搜索结果优化_第3张图片

4、知识点梳理

(1)terms多值搜索
(2)优化terms多值搜索的结果
(3)相当于SQL中的in语句

你可能感兴趣的:(ElasticSearch进阶)