我有一个保存电影标题的Elasticsearch数据库。
我想要实现的是从这个数据库中选择最接近的匹配项,看看我是否已经有了类似的标题。目前,我正在使用phrase_matching和单词匹配的组合来尝试实现这一点。下面是我正在努力解决的问题:
在数据库中:它在夜间出现
搜索: It
这将明显地匹配,因为它在slop参数中,并将100%的单词与数据库中的单词匹配。但是我想要的是这个搜索失败,因为我的搜索只包含了elasticsearch中整个句子的25%。(几乎就像是反向匹配)。
原因是“It”和“It comes at night”实际上是两个不同的标题,当这个搜索发生时,它们可能/可能还没有被索引。
我不是简单地使用术语查询的原因是针对这样的情况:《银河护卫队2》、《银河护卫队2》和《银河护卫队2
有没有人知道这能否在Elasticsearch中实现?
发布于 2017-09-08 07:17:24
现在,我使用了以下几种方法的组合:
这给了我所期望的东西。
发布于 2017-09-08 20:38:33
您是否尝试过配置字段的相似性?我认为将更传统的统计方法与一些带状提升相结合可以为您提供更健壮的解决方案。您可以按分数进行筛选,以限制结果集。
请参阅:https://www.elastic.co/guide/en/elasticsearch/reference/current/index-modules-similarity.html
https://stackoverflow.com/questions/46093832
复制