Elasticsearch会增加但每个字段只有一次出现

时间:2015-07-29 12:02:00

标签: elasticsearch

我目前正在向ElasticSearch发送以下查询:

{
    "size": 100,
    "query": {
        "function_score": {
            "query": {
                "simple_query_string": {
                    "query": "term1",
                    "fields": ["field1^10", "field2^5"]
                }
            }]
        }
    }
}

现在假设我有两份文件。

  • Document1包含一次" term1"在field1上
  • Document2包含三次出现" term1" on field2

我得到的内容:Elastic返回Document1上方的Document2

我想要的内容:Document2上面的Document1。

为实现这一目标,弹性不应乘以" term1"的出现次数。只是它"出现"。我该怎么处理我的查询?

1 个答案:

答案 0 :(得分:2)

似乎有两种选择可以强制弹性不会根据术语的出现次数给予更多权重。

第一个是映射字段以禁用术语频率(TF):https://www.elastic.co/guide/en/elasticsearch/guide/current/scoring-theory.html#tfidf

第二个是使用常量得分查询:https://www.elastic.co/guide/en/elasticsearch/guide/current/ignoring-tfidf.html