【发布时间】:2014-07-03 09:35:40
【问题描述】:
所以 ElasticSearch 有 terms 查询,它让我可以提供多个值并返回字段 X 匹配其中任何值的文档列表。
但我想用 match_phrase 做同样的事情 - 即返回字段 X 包含不区分大小写的匹配与空格的术语的文档。我目前使用 or 过滤器(见下文)。但考虑到术语已经做了类似的事情,这似乎是一种非常冗长的方式来做我想做的事情。
当前方法
在单个字段中搜索三个值之一的查询应该是 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"
}
}
}
]
}
}
}
}
}
【问题讨论】:
标签: elasticsearch