Fun*_*ado 12 fuzzy-search elasticsearch
如何在multi_match查询中添加模糊性?因此,如果有人要搜索'basball',它仍会找到'棒球'文章.目前我的查询如下所示:
POST /newspaper/articles/_search
{
"query": {
"function_score": {
"query": {
"multi_match": {
"query": "baseball",
"type": "phrase",
"fields": [
"subject^3",
"section^2.5",
"article^2",
"tags^1.5",
"notes^1"
]
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我正在考虑的一个选择是做这样的事情,只是不知道这是否是最好的选择.根据评分保持排序很重要:
"query" : {
"query_string" : {
"query" : "subject:basball^3 section:basball^2.5 article:basball^2",
"fuzzy_prefix_length" : 1
}
}
Run Code Online (Sandbox Code Playgroud)
建议?
小智 30
要向多查询添加模糊性,您需要添加模糊属性,如下所述:
{
"query": {
"function_score": {
"query": {
"multi_match": {
"query": "baseball",
"type": "phrase",
"fields": [
"subject^3",
"section^2.5",
"article^2",
"tags^1.5",
"notes^1"
],
"fuzziness" : "AUTO",
"prefix_length" : 2
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,在文档中解释的prefix_length为:
不会"模糊化"的初始字符数.这有助于减少必须检查的术语数量.默认为0.
要检查模糊性的可能值,请访问ES文档.
归档时间: |
|
查看次数: |
11354 次 |
最近记录: |