是否有可能有这样的查询
"query": {
"filtered": {
"filter": {
"terms": {
"names": [
"Anna",
"Mark",
"Joe"
],
"execution" : "and"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
随着"minimum_should_match": "2"声明?
我知道我可以使用一个简单的查询(我已经尝试过,它有效)但我不需要计算得分.我的目标是过滤包含2个值的文档.
分数通常会严重影响检索文档所需的时间吗?
使用此查询:
"query": {
"filtered": {
"filter": {
"terms": {
"names": [
"Anna",
"Mark",
"Joe"
],
"execution" : "and",
"minimum_should_match": "2"
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我收到了这个错误:
QueryParsingException[[my_db] [terms] filter does not support [minimum_should_match]]
Run Code Online (Sandbox Code Playgroud)
最小匹配不是参数terms filter.如果这是您正在寻找的功能,我可能会像这样重写您的查询,以使用bool query包装在query filter:
{
"filter": {
"query": {
"bool": {
"must": [
{
"term": {
"names": "Anna"
}
},
{
"term": {
"names": "Mark"
}
},
{
"term": {
"name": "Joe"
}
}
],
"minimum_number_should_match": 2
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
您将获得最接近所有三个匹配的文档,但查询也将使文档与三个术语中的两个完全匹配.这must是隐含的和.我们也没有计算得分,因为我们已将查询作为过滤器执行.
| 归档时间: |
|
| 查看次数: |
15253 次 |
| 最近记录: |