gpt4 book ai didi

elasticsearch - Elasticsearch : Match phrase and term

转载 作者:行者123 更新时间:2023-12-03 02:00:44 25 4
gpt4 key购买 nike

在 elasticsearch 中,我正在构建过滤查询以查找包含 的文档。两个一个短语和一个术语。以下查询不起作用。它似乎使用查询数组中的项目返回结果,但好像应用了“或”运算符。

编辑:由于我使用的是 PHP,以下示例是一个 php 数组。

'query' => [
'filtered' => [
'query' => [
'match' => [
"post_content" => [
'query' => ['ambulance services', 'veteran'],
'operator' => 'and',
'type' => 'phrase'
]
]
],
'filter' => [
...
]
]
]

最佳答案

在您可以像您所做的那样为查询提供数组之前,我从未见过匹配查询的语法。但我确实在 0.90 版本中尝试过,发现它只是返回了第二个字符串的结果。所以使用 JSON,我尝试的是这样的:

{
"query" : {
"filtered" : {
"query" : {
"match" : {
"post_content" : {
"query" : [ "test string 1", "test string 2" ]
}
}
}
}
}
}

如果您引用 match query docs , and运算符确保所有术语都在 post_content 字段中,而不考虑术语的位置。我认为匹配查询归结为一个 bool 查询,其中查询中的每个术语都由一个子句表示。所以运营商并没有完全按照你的意愿去做。

我认为以下内容将适用于您想要的:
{
"query" : {
"bool" : {
"should" : [
{
"match" : {
"post_content" : {
"type" : "phrase",
"query" : "ambulance services"
}
}
},
{
"match" : {
"post_content" : {
"query" : "veteran"
}
}
}
],
"minimum_should_match" : 2
}
}
}

关于elasticsearch - Elasticsearch : Match phrase and term,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32875765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com