gpt4 book ai didi

elasticsearch - 如何在 ElasticSearch 中执行多个 "match"或 "match_phrase"值

转载 作者:行者123 更新时间:2023-11-29 02:44:40 25 4
gpt4 key购买 nike

所以 ElasticSearch 有 terms 查询,它让我可以提供多个值并返回一个文档列表,其中字段 X 与这些值中的任何一个匹配。

但我想对 ma​​tch_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"
}
}
}
]
}
}
}
}
}

最佳答案

经过漫长的一夜试图自己解决这个问题,我想到了这个:

"query" : {
"bool": {
"should": [
{
"match_phrase": {
"myField1": "My first search phrase"
}
},
{
"match_phrase": {
"myField1": "My second search phrase"
}
}
]
}
}

引用:https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-bool-query.html

关于elasticsearch - 如何在 ElasticSearch 中执行多个 "match"或 "match_phrase"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24550103/

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