目前正在使用Node和Elasticsearch构建搜索引擎。我试图找到一种方法将Levenshtein距离应用于索引。例如,如果我的索引为javascript
且输入的搜索字词包含jvascrpt
,则如果我应用Levenshtein距离2,则应仅查询该索引。
如果使用了距离,则查询不匹配,则应查询所有索引。我知道这已经可以设置索引property to
_ all`或空字符串。
我知道查询中的fuzziness
属性,但它位于文档的body
上。有没有办法将此属性应用于索引?
根据documentation,index
属性只接受String
,String[]
或Boolean
的类型,因此请理解查询无法绑定到此属性
如果Elasticsearch没有提供此功能,那么我将找到一种在JS中实现它的方法。所以,我要问的是,Elasticsearch是否有任何功能可以应用于query
属性(假设),您可以在其中应用Levenshtein距离(即通过fuzziness
属性)到index
。这样的事可能吗?:
query: {
match: {
index: {
query: textToSearch,
minimum_should_match: 1,
fuzziness: 1
}
}
}
答案 0 :(得分:0)
我通过在所保存文档的正文中添加index
属性来解决这个问题。然后,我可以通常的方式查询该字段