尝试使用“ https://www.elastic.co/guide/en/elasticsearch/reference/6.4/query-dsl-common-terms-query.html”,但无法使某件事起作用: 仅当查询中的所有低频词均已匹配时,才将高频词分数添加到总分数中。
使用"low_freq_operator": "and"
进行了尝试,但这使得查询中的所有低频单词都是必需的-我不知道。
也-如果我使用
"minimum_should_match": {
"low_freq" : "50%",
}
这是否意味着如果查询有4个低频词,那么其中的2个文档将作为匹配项返回,而只有1个查询词的文档将不会被返回?
谢谢。
答案 0 :(得分:0)
must be present
(使用"low_freq_operator": "and"
)only some of them
(使用"low_freq_operator": "or"
some percentage of them
(使用minimum_should_match
)influence the score
的查询,其中查询字符串中的所有停用词
must be considered
(使用"high_freq_operator": "and"
)only some of them
(使用"high_freq_operator": "or"
)some percentage of them
(使用minimum_should_match
)should
子句根据LINK,
根据以下条件将术语分配给高频组或低频组 cutoff_frequency,可以指定为绝对频率 (> = 1)或相对频率(0.0 .. 1.0)....
此查询最有趣的属性可能是它可以适应 自动指定域停用词。例如,在视频上 托管网站,诸如“剪辑”或“视频”之类的常用术语将自动 充当停用词,而无需维护手册列表。
从此LINK
常用术语查询is a modern alternative to stopwords which improves the precision and recall of search results
(通过考虑停用词),而不会降低性能。
假设我有以下文件:
Document 1: Is there stairway to this path?
Document 2: Is there a stairway to heaven?
Document 3: Stairway to heaven
.....
.....
现在说您的搜索查询如下:
{
"query": {
"common": {
"body": {
"query": "stairway to heaven",
"cutoff_frequency": 0.001,
"low_freq_operator": "and"
}
}
}
}
使用and
时,结果仅为Document 3 followed by Document 2
。而当您使用or
时,结果将分别为Document 3, Document 2, Document 1
。
因此,当您使用or
时,此处将使用高频词(即to
)来影响得分。以类似的方式,high_freq_operator
适用于停用词,但是它再次仅用于影响得分。
因此,对于您的第一个查询,希望上面的解释就足够了,对于下面的查询,
是否表示如果查询有4个低频词,则文档中有2个 其中的一个将作为匹配返回,但仅包含1个查询的文档 单词不会被返回对吗?
是的,这是正确的。
希望有帮助!