如何在弹性搜索查询中传递特定字段的值列表
Posted
技术标签:
【中文标题】如何在弹性搜索查询中传递特定字段的值列表【英文标题】:How to pass list of values for a particular field in Elastic Search Query 【发布时间】:2017-01-22 13:32:12 【问题描述】:我有一个查询要从Elastic Search Cluster
中搜索provider_id
。我正在使用下面的查询来获取单个 provider_id
的结果,但在弄清楚如何传递提供者列表时需要帮助。
"query":
"bool":
"must": [
"match":
"message.provider_id":
"query": 943523,
"type": "phrase"
]
假设我要搜索provider_ids = [913523, 923523, 923523, 933523, 953523]
,那么我应该如何修改查询呢?
【问题讨论】:
【参考方案1】:您可以将 provider_id 索引为 not_analyzed,然后使用术语查询:
POST /test_index/_search
"query":
"terms":
"message.provider_id": [
"913523", "923523", "923523", "933523", "953523"
]
如果您不需要分数,也可以作为带有过滤器的布尔查询:
POST /test_index/_search
"query":
"bool":
"filter": [
"terms":
"message.provider_id": [
"913523", "923523", "923523", "933523", "953523"
]
]
【讨论】:
以上是关于如何在弹性搜索查询中传递特定字段的值列表的主要内容,如果未能解决你的问题,请参考以下文章