{
"query":{
"constant_score":{
"filter":{
"bool":{
"should":{
"terms":{
"field_a":[
"value1", "value2"
]
}
},
"must":{
"term":{
"field_b":"value"
}
}
}
}
}
}
}
假定此搜索返回的结果包含field_a中的value1或value2和field_b中的value。
因此类似于此MySQL查询:
SELECT * FROM table WHERE field_a IN ('value1', 'value2') AND field_b = value
升级后,它将返回所有结果,其中field_b = value。查询的第一部分被完全忽略。
有修复建议吗?
您正在遇到这一重大变化。minimum_should_match
不再设置为1
。要更正此问题,请将您minimum_should_match
的1
您的新查询可以这样修复:
{
"query":{
"constant_score":{
"filter":{
"bool":{
"should":{
"terms":{
"field_a":[
"value1", "value2"
]
}
},
"minimum_should_match": 1,
"must":{
"term":{
"field_b":"value"
}
}
}
}
}
}
}
请给我一些灯。下面是我的代码:
我有三个索引,它们都共享一个特定的键值对。当我用api进行全面搜索时”http://localhost:9200/_search“使用请求正文 它只返回其中两个索引的结果。我尝试使用相同的请求正文,将url更改为仅在丢失的索引中搜索”http://localhost:9200/index_name/_search“这很管用。我有什么遗漏吗? 插入所有三个索引的代码遵循相同的过程,我使用elasti
问题内容: 我正在使用并希望elasticsearch返回搜索的单词而不仅仅是点击。当我搜索单词并且模糊搜索找到单词时,我想知道是谁找到了它。 数据: 查询: 该查询将返回,但不知道是否找到它。 有人知道该怎么做或一个主意吗?我希望输出为。 问题答案: 您可以为此命名查询,方法是为每个查询命名。在结果中,每个匹配都将包含一个数组,其中包含匹配的查询的名称(例如及以下)。
问题内容: 我有一个运行中的elasticsearch的内存实例,并做了一些探索性的编码来学习搜索Java API。我能够将文档提交到索引并使用GET检索它们,但是当我尝试简单的搜索查询时,没有得到任何结果。 经过一些测试后,我认为问题出在我如何设置节点和关联的客户端(在内存中): 问题答案: Googleelasticsearch小组中的某个人很友好,可以在这里帮助我。将文档提交到内存节点后,我
我正在用Hibernate Search 4.5.1和Spring 4.0.5版本构建一个应用程序。我正在尝试索引以下类: 我正在构建一个junit测试用例,看起来如下所示: 我还注意到在luke lucene上,一些索引词的长度最多为6个字符,例如,一首歌的艺术家是“后代”,而索引中存储的词是“the”和“offspr”。第一个可以,但第二个不应该是“后代”。为什么要截断名字?
好的,我已经成功地将一个列表变成了一个二维数组。唯一的问题是输出只索引一次,所以基本上,如果我想将每个列表中的10个元素添加到一个二维数组中,那么这个二维数组将只有一个包含“n”个元素的索引。 例如 我愿意 相反,它正在返回: 我接受了以下建议:将ArrayList转换为包含不同长度数组的2D数组 这是我的代码: 我正在使用数据提供者(DataProviders)和TestNG,它们需要返回一个二