指数弹性搜索的Levenshtein距离

时间:2018-05-31 09:03:59

标签: node.js elasticsearch

目前正在使用Node和Elasticsearch构建搜索引擎。我试图找到一种方法将Levenshtein距离应用于索引。例如,如果我的索引为javascript且输入的搜索字词包含jvascrpt,则如果我应用Levenshtein距离2,则应仅查询该索引。

如果使用了距离,则查询不匹配,则应查询所有索引。我知道这已经可以设置索引property to _ all`或空字符串。

我知道查询中的fuzziness属性,但它位于文档的body上。有没有办法将此属性应用于索引?

根据documentationindex属性只接受StringString[]Boolean的类型,因此请理解查询无法绑定到此属性

如果Elasticsearch没有提供此功能,那么我将找到一种在JS中实现它的方法。所以,我要问的是,Elasticsearch是否有任何功能可以应用于query属性(假设),您可以在其中应用Levenshtein距离(即通过fuzziness属性)index。这样的事可能吗?:

query: {
    match: {
        index: {
            query: textToSearch,
            minimum_should_match: 1,
            fuzziness: 1
        }
    }
}

1 个答案:

答案 0 :(得分:0)

我通过在所保存文档的正文中添加index属性来解决这个问题。然后,我可以通常的方式查询该字段