【发布时间】:2020-06-29 19:25:43
【问题描述】:
我在弹性搜索中插入了位置,下面是弹性搜索存储位置的示例:
[
{
"lat": 1,
"lon": 1,
"place": "asddda ddsd asdad vasanth hhjkhk sdsdd asddasd"
},
{
"lat": 2,
"lon": 2,
"place": "asddda ddsd asdad vasanth1 hhjkhk sdsdd asddasd"
},
{
"lat": 3,
"lon": 3,
"place": "asddda ddsd asdad vasanth2 hhjkhk sdsdd asddasd"
},
{
"lat": 4,
"lon": 4,
"place": "asddda ddsd asdad test hhjkhk sdsdd asddasd"
}
]
如果我搜索vasanth,它会给出正确的结果,因为它应该给出所有 3 个结果。但是,如果我用字符删除Vsanth 进行搜索,它只会给出一个结果,但现在它也应该给出 3 个结果。而且,如果我插入一个字符,那么我也会。无法正常工作。
根据elasticsearch doc,它的模糊查询具有以下特点:
Changing a character (box → fox)
Removing a character (black → lack)
Inserting a character (sic → sick)
Transposing two adjacent characters (act → cat)
下面是我正在使用的查询,
{
"query": {
"fuzzy": {
"address": {
"value": "Vsanth",
"fuzziness":15,
"transpositions":true,
"boost": 5
}
}
}
}
那么,如何修改查询以使用模糊查询的所有四个功能。我不明白我犯了什么错误。
【问题讨论】:
标签: elasticsearch lucene fuzzy-search