Elasticsearch -合并多个匹配短语



我有下面的查询,它工作正常。但我的要求是,我可以有多个短语需要在中匹配

{
"query": {
"bool": {
"should": [
{
"match_phrase": {
"primaryTags": {
"query": "Audience1",
"boost": 2
}
}
},
{
"match_phrase": {
"secondaryTags": {
"query": "Audience1",
"boost": 3
}
}
},
{
"match_phrase": {
"primaryTags": {
"query": "Audience2",
"boost": 2
}
}
},
{
"match_phrase": {
"secondaryTags": {
"query": "Audience2",
"boost": 3
}
}
}
],
"minimum_should_match": "1",
"boost": 1
}
}
}

我将不得不不断添加两个匹配短语primary和secondary与每个新短语进来。是否有一种方法可以在一个条件下分别拥有primary和secondary的所有短语?

可以使用类型为短语的multi_match查询。试试下面的搜索查询:

{
"query": {
"bool": {
"should": [
{
"multi_match": {
"query": "Audience1",
"fields": [
"primaryTags^2",
"secondaryTags^3"
],
"type": "phrase"
}
},
{
"multi_match": {
"query": "Audience2",
"fields": [
"primaryTags^2",
"secondaryTags^3"
],
"type": "phrase"
}
}
]
}
}
}

相关内容

  • 没有找到相关文章

最新更新