elasticsearch - 或与elasticsearch查询

标签 elasticsearch

我有一个带有“名称”和“描述”的索引。我正在对索引运行 bool(boolean) 查询。有时,该术语同时出现在名称和描述字段中,在这种情况下,名称和描述中都包含搜索词的文档的得分要比具有名称或具有搜索词的描述的文档更高。

我要给他们评分。因此,具有名称或描述且具有该术语的文档的得分与具有在名称和描述中均具有搜索术语的文档的得分相同。

可能吗?

这是示例:

{
    "name":     "xyz",
    "description":  "abc xyz"
},
{
    "name":     "abc",
    "description":  "xyz pqr"
},
{
    "name":     "xyz",
    "description":  "abc pqr"
}

如果用户搜索术语“xyz”,我希望以上所有三个文档具有相同的分数。
由于所有文档在名称或描述中或在两个字段中均包含术语“xyz”。

最佳答案

您可以为此使用Filtered Query。过滤器未评分。请参阅下面的查询以搜索"xyz":

POST <index name>/<type>/_search
{
    "filtered": {
        "query": {
            "match_all": {}
        },
        "filter": {
            "bool": {
                "should": [
                    {
                        "term": {
                            "name": "xyz"
                        }
                    },
                    {
                        "term": {
                            "description": "xyz"
                        }
                    }
                ]
            }
        }
    }
}

关于elasticsearch - 或与elasticsearch查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16529803/

相关文章:

r - 带弹性包装的R中的for环

python方法具有1个变量的嵌套字典

elasticsearch - 检索唯一值总数 kibana + Elasticsearch

node.js - zsh:当$ curl -s -X localhost:60702/api/bundle?name = light%20reading |时找不到匹配项| j q '.'

ruby-on-rails - 通过 Searchkick 按整数值对 Elasticsearch 结果进行排序

java - Elasticsearch Java Api 设置索引设置

Elasticsearch 多匹配 cutoff_frequency

elasticsearch - Elasticsearch高更新索引压缩

elasticsearch - Elasticsearch :聚合随机顺序?

elasticsearch - 如何定义两个单词的间距