代码之家  ›  专栏  ›  技术社区  ›  wmash

索引弹性搜索中的levenshtein距离

  •  0
  • wmash  · 技术社区  · 8 年前

    目前正在建立一个带有节点和弹性搜索的搜索引擎。我正试图找到一种方法,将levenshtein距离应用于索引。例如,如果我有 javascript 输入的搜索词包含 jvascrpt ,如果应用levenshtein距离2,则只应查询该索引。

    如果, 应用距离 ,则查询不匹配 全部的 应查询索引。我知道这已经可以通过设置索引 property to _全部或空字符串。

    我知道 fuzziness 属性,但该属性位于 body 文件的。是否也有方法将此属性应用于索引?

    根据 documentation , the index 属性只接受 String , String[] 或 Boolean 因此,请注意查询不能绑定到此属性。

    如果elasticsearch没有提供这个功能,那么我会在js中找到实现它的方法。所以,我要问的是,ElasticSearch是否提供了任何可以应用于 query 财产 (假设) 在那里你可以应用levenshtein距离 (即通过 模糊性 财产) 到 指数 . 也许是这样?:

    query: {
        match: {
            index: {
                query: textToSearch,
                minimum_should_match: 1,
                fuzziness: 1
            }
        }
    }
    
    1 回复  |  直到 8 年前
        1
  •  0
  •   wmash    8 年前

    我通过添加一个 index 属性设置为所持文档的正文。我可以用通常的方式查询那个字段