所以ElasticSearch有一个术语查询,它允许我提供多个值并返回一个文档,其中字段X匹配任何这些值.
但我想用match_phrase做同样的事情- 即返回文档,其中字段X包含对带空格的术语不区分大小写的匹配.我目前使用或过滤器(见下文).但这似乎是一种非常冗长的方式来做我想要的,考虑到术语已经做了类似的事情.
目前的方法
在单个字段中搜索三个值之一的查询应该是33行,这似乎很荒谬.
{
"query": {
"filtered": {
"filter": {
"or": {
"filters": [
{
"query": {
"match_phrase": {
"myField1": "My first search phrase"
}
}
},
{
"query": {
"match_phrase": {
"myField1": "My second search phrase"
}
}
},
{
"query": {
"match_phrase": {
"myField1": "My third search phrase"
}
}
}
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
Jon*_*wik 10
经过一个漫长的夜晚试图弄清楚这一点后,我想出了这个:
"query" : {
"bool": {
"should": [
{
"match_phrase": {
"myField1": "My first search phrase"
}
},
{
"match_phrase": {
"myField1": "My second search phrase"
}
}
]
}
}
Run Code Online (Sandbox Code Playgroud)
参考:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html
查询字符串在这里对这些行很有帮助
{
"query": {
"query_string": {
"default_field": "myField1",
"query": "\"My first search phrase\" OR \"My second search phrase\" OR \"My third search phrase\""
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15858 次 |
| 最近记录: |