我试图编写一个由2个部分组成的弹性搜索布尔查询。我想要“必须”的两个条件和“应该”的两个条件。问题是我只想得到“应该”的分数。我尝试了“过滤器”,但没有成功。
{
"query": {
"bool": {
"must": [
{
"match": {
"attr1": "on"
}
},
{
"match": {
"category": "7eb84c804a8c824fd608e05f78d42f10"
}
}
],
"should": [
{
"term": {
"attr2": "on"
}
},
{
"term": {
"attr3": "on"
}
}
],
"minimum_should_match": "10%"
}
}
}
{
"query": {
"bool": {
"filter": [
{
"term": {
"attr1": "on"
}
},
{
"term": {
"category": "7eb84c804a8c824fd608e05f78d42f10"
}
}
],
"should": [
{
"term": {
"attr2": "on"
}
},
{
"term": {
"attr3": "on"
}
}
],
"minimum_should_match": "10%"
}
}
}
你有什么想法吗?
似乎您没有使用Elasticsearch 2.x。
对于ElasticSearch1.x,使用FilteredQuery:https://www.elastic.co/guide/en/Elasticsearch/reference/current/query-dsl-filtered-query.html
{
"filtered": {
"query": {
"bool": {
"should": [
{
"term": {
"attr2": "on"
}
},
{
"term": {
"attr3": "on"
}
}
]
}
},
"filter": {
"bool": {
"must": [
{
"match": {
"attr1": "on"
}
},
{
"match": {
"category": "7eb84c804a8c824fd608e05f78d42f10"
}
}
]
}
}
}
}
我在ES中有两个问题。对于同一组文档,两者的周转时间都不同。两者在概念上都在做同样的事情。我没有什么疑问 1-这两者之间有什么区别?2-哪个更好使用?3-如果两者相同,为什么表现不同? 映射: 更新1: 我在同一组数据上尝试了bool/必须查询和bool/过滤器查询,但我发现了奇怪的行为 1-bool/必须查询能够搜索所需的文档 2-虽然bool/filter无法搜索文档。如果我删除第二个字段条件
我从事elasticsearch,我尝试混合两个工作查询。第一个是“and filter”,第二个是“bool filter”,但我失败了。 我的查询是从用户交互界面动态生成的。 “和过滤器”: 我需要“和过滤器”来查询数据,例如,字段必须等于“非洲”或“亚洲”或为空。这是一个工作查询的示例: 此查询工作正常,结果如下: 现在我需要用字段“D\u TYPESTATUS”来限制结果数据,该字段必须与
不带筛选器的查询: 当我用curl:curl-w'\ntime_total:%{time_total}\n'-h'content-type:application/json'-xget-d‘{}':9200/store/msg/_search?routing=user1来度量这两个查询的性能时 不带筛选器的查询得到的总时间:1.134、1.237、1.107,带筛选器的查询时间:1.322、1.4
问题内容: “过滤后的查询和过滤器”与“根查询和过滤器”之间有什么区别吗?例如 情况1: 情况2: 我在http://elasticsearch-users.115913.n3.nabble.com/Filtered-query-vs-using- filter-outside-td3960119.html中 找到了此讨论,但所引用的URL是404,并且解释过于简洁我。 请示教或提供指出这些区别的
我在布尔查询中有一个筛选器问题。 我想应用一个基于3个字段的筛选器,其中至少有1个筛选器匹配: 我在这个查询中没有得到任何结果,但是我在索引中看到了很多相关的文档。 Opster Elasticsearch忍者测试: 例如你向我提出的1个例子,我有许多返回的结果。 然而,当我想对对象字段执行必须查询时,我没有得到与筛选器完美匹配的相同结果。 这里有一个例子: 仅使用must子句进行搜索 首先出现的
问题内容: 根据http://www.elastic.co/guide/zh-cn/elasticsearch/guide/master/combining- filters.html 上的elasticsearch文档,布尔过滤器可以是以下内容: 在含义上,它等效于以下逻辑运算: 这样对吗? 谢谢! 问题答案: 正如Andrei在评论中指出的,这是对 过滤器 的正确理解: 可以翻译成 可以翻译成