Node.js 索引弹性搜索的Levenshtein距离
目前正在使用Node和Elasticsearch构建搜索引擎。我试图找到一种方法,将Levenshtein距离应用于索引。例如,如果我的索引为Node.js 索引弹性搜索的Levenshtein距离,node.js,elasticsearch,Node.js,elasticsearch,目前正在使用Node和Elasticsearch构建搜索引擎。我试图找到一种方法,将Levenshtein距离应用于索引。例如,如果我的索引为javascript,并且输入的搜索词包含jvascrpt,如果我应用的Levenshtein距离为2,它应该只查询该索引 如果应用距离后,查询不匹配,则应查询所有索引。我知道,如果将index属性设置为\u all`或空字符串,就可以实现这一点 我知道查询中的模糊性属性,但它位于文档的正文。有没有办法将此属性也应用于索引 根据,索引属性只接受字符串、字符
javascript
,并且输入的搜索词包含jvascrpt
,如果我应用的Levenshtein距离为2,它应该只查询该索引
如果应用距离后,查询不匹配,则应查询所有索引。我知道,如果将index属性设置为
\u all`或空字符串,就可以实现这一点
我知道查询中的模糊性
属性,但它位于文档的正文
。有没有办法将此属性也应用于索引
根据,索引
属性只接受字符串
、字符串[]
或布尔值
的类型,因此查询无法绑定到此属性
如果Elasticsearch不提供此功能,那么我将找到一种在JS中实现它的方法。因此,我要问的是,Elasticsearch是否提供了任何功能,您可以应用于查询
属性(假设),您可以将Levenshtein距离(即通过模糊性
属性)应用于索引
。也许是这样吧
query: {
match: {
index: {
query: textToSearch,
minimum_should_match: 1,
fuzziness: 1
}
}
}
我通过在文档主体中添加一个
索引属性来解决这个问题。然后我可以用通常的方式查询该字段