有没有办法在弹性搜索中匹配相似的匹配项
Is there any way to match similar match in Elastic Search
我有弹性搜索大文档
我正在使用以下查询进行搜索
{"size": 1000, "query": {"query_string": {"query": "( string1 )"}}}
假设我的 string1 = 产品,如果某个人忘记了某个意外类型的产品 o
有什么方法可以搜索到吗
{"size": 1000, "query": {"query_string": {"query": "( prdct )"}}}
还必须 return prdct + 产品的结果
您可以使用fuzzy query that returns documents that contain terms similar to the search term. Refer this blog获取模糊查询的详细解释。
因为,您有更多的编辑距离可以匹配 prdct
。模糊参数可以定义为:
0, 1, 2
0..2 = Must match exactly
3..5 = One edit allowed
More than 5 = Two edits allowed
索引数据:
{
"title":"product"
}
{
"title":"prdct"
}
搜索查询:
{
"query": {
"fuzzy": {
"title": {
"value": "prdct",
"fuzziness":15,
"transpositions":true,
"boost": 5
}
}
}
}
搜索结果:
"hits": [
{
"_index": "my-index1",
"_type": "_doc",
"_id": "2",
"_score": 3.465736,
"_source": {
"title": "prdct"
}
},
{
"_index": "my-index1",
"_type": "_doc",
"_id": "1",
"_score": 2.0794415,
"_source": {
"title": "product"
}
}
]
这个问题有很多解决方法:
- Suggestions(您的意思是 X)。
- Fuzziness(根据您的原始搜索词进行编辑)。
- 使用自动完成进行部分匹配(如果有人键入“pr”并且您提供了可用的搜索词,他们可以立即点击正确的结果)或n-grams(匹配字母组)。
所有这些都在索引/搜索开销以及经典的精度/召回问题方面进行了权衡。
我有弹性搜索大文档
我正在使用以下查询进行搜索
{"size": 1000, "query": {"query_string": {"query": "( string1 )"}}}
假设我的 string1 = 产品,如果某个人忘记了某个意外类型的产品 o
有什么方法可以搜索到吗
{"size": 1000, "query": {"query_string": {"query": "( prdct )"}}}
还必须 return prdct + 产品的结果
您可以使用fuzzy query that returns documents that contain terms similar to the search term. Refer this blog获取模糊查询的详细解释。
因为,您有更多的编辑距离可以匹配 prdct
。模糊参数可以定义为:
0, 1, 2
0..2 = Must match exactly
3..5 = One edit allowed
More than 5 = Two edits allowed
索引数据:
{
"title":"product"
}
{
"title":"prdct"
}
搜索查询:
{
"query": {
"fuzzy": {
"title": {
"value": "prdct",
"fuzziness":15,
"transpositions":true,
"boost": 5
}
}
}
}
搜索结果:
"hits": [
{
"_index": "my-index1",
"_type": "_doc",
"_id": "2",
"_score": 3.465736,
"_source": {
"title": "prdct"
}
},
{
"_index": "my-index1",
"_type": "_doc",
"_id": "1",
"_score": 2.0794415,
"_source": {
"title": "product"
}
}
]
这个问题有很多解决方法:
- Suggestions(您的意思是 X)。
- Fuzziness(根据您的原始搜索词进行编辑)。
- 使用自动完成进行部分匹配(如果有人键入“pr”并且您提供了可用的搜索词,他们可以立即点击正确的结果)或n-grams(匹配字母组)。
所有这些都在索引/搜索开销以及经典的精度/召回问题方面进行了权衡。