elasticsearch - Elasticsearch文字匹配百分比

标签 elasticsearch matching

我有一个带有已保存电影标题的Elasticsearch数据库。

我想要实现的是从此数据库中选择最接近的匹配项,以查看我是否已经有一个相似的标题。
目前,我正在使用短语匹配和单词匹配的组合来尝试实现这一目标。我所挣扎的如下:

在数据库中:
晚上来

搜索:


这显然很匹配,因为它在slop参数中,并且将100%的单词与数据库中的单词匹配...
但是我想要的是该搜索失败,因为我的搜索仅包含elasticsearch中整个句子的25%。 (几乎像是反向比赛)。

原因是“It”和“It at night”实际上是2个不同的标题,在进行此搜索时可能已经/可能尚未索引。

我之所以不简单使用字词查询的原因是:
银河护卫队2

银河护卫队2

银河护卫队2

有谁知道是否可以在Elasticsearch中实现?

最佳答案

目前,我已使用以下各项的组合:

  • 与minimum_should_match一起的匹配查询,以检查需要匹配
  • 的单词数量
  • MatchPhrase使用斜率
  • 检查具有一定余量的匹配单词的位置
  • 一个自定义脚本,它检查doc ['_ source'] ['field']。value.length属性以检查它是否在某些字符长度之间

  • 这给了我我所期望的。

    关于elasticsearch - Elasticsearch文字匹配百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46093832/

    相关文章:

    node.js - 带有Node.js的Elasticsearch js:如何从多个索引返回聚合结果?

    Elasticsearch 分析百分比

    Javascript 匹配 - 不区分大小写

    xcode 未找到匹配的配置文件

    elasticsearch - 通过 Ingress Controller 公开 Elastic APM

    elasticsearch - 通过忽略值大小写检查搜索

    scala - elastic4s:反序列化搜索结果

    templates - *和XSLT中的node()之间的区别

    c++ - 使用非线性最小二乘法对地 block 进行形状匹配