如何在弹性搜索查询中传递特定字段的值列表
How to pass list of values for a particular field in Elastic Search Query
我有一个查询要从 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]
那么我应该如何修改查询?
您可以将 provider_id 索引为 not_analyzed,然后使用术语查询:
POST /test_index/_search
{
"query": {
"terms": {
"message.provider_id": [
"913523", "923523", "923523", "933523", "953523"
]
}
}
}
或者如果您不需要分数,则作为带有过滤器的 bool 查询:
POST /test_index/_search
{
"query": {
"bool": {
"filter": [
{
"terms": {
"message.provider_id": [
"913523", "923523", "923523", "933523", "953523"
]
}
}
]
}
}
}
我有一个查询要从 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]
那么我应该如何修改查询?
您可以将 provider_id 索引为 not_analyzed,然后使用术语查询:
POST /test_index/_search
{
"query": {
"terms": {
"message.provider_id": [
"913523", "923523", "923523", "933523", "953523"
]
}
}
}
或者如果您不需要分数,则作为带有过滤器的 bool 查询:
POST /test_index/_search
{
"query": {
"bool": {
"filter": [
{
"terms": {
"message.provider_id": [
"913523", "923523", "923523", "933523", "953523"
]
}
}
]
}
}
}