我目前正在向ElasticSearch发送以下查询:
{
"size": 100,
"query": {
"function_score": {
"query": {
"simple_query_string": {
"query": "term1",
"fields": ["field1^10", "field2^5"]
}
}]
}
}
}
现在假设我有两份文件。
我得到的内容:Elastic返回Document1上方的Document2
我想要的内容:Document2上面的Document1。
为实现这一目标,弹性不应乘以" term1"的出现次数。只是它"出现"。我该怎么处理我的查询?
答案 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