栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

ElasticSearch-搜索人名

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ElasticSearch-搜索人名

首先,我在Play中重新创建了您当前的配置:https
:
//www.found.no/play/gist/867785a709b4869c5543

如果您去那里,请切换到“分析”选项卡以查看文本的转换方式:

请注意,例如,

Heaney
最终
[hn, heanei]
search_analyzer
和和
[HN,heanei]
一起被标记化
index_analyzer
。请注意变音素词的大小写差异。因此,那是不匹配的。

fuzzy
-query没有做查询时间文本分析。因此,您最终将
Heavey
与进行比较
heanei
。其Damerau-
Levenshtein距离比您的参数所允许的长。

您真正想做的是使用的模糊功能

match
。Match 确实 会查询时间文本分析,并且具有 模糊 参数。

至于

fuzziness
,这在Lucene
4中有所改变。以前,通常将其指定为float。现在应将其指定为允许的距离。有一个出色的拉取请求来澄清:https
:
//github.com/elasticsearch/elasticsearch/pull/4332/files

之所以要招募没有名字的人,

Michael
是因为您正在做一个
bool.should
。这具有或语义。一场比赛就足够了,但是从得分上来说,比赛越多越好。

最后,将所有过滤合并到同一术语中不一定是最好的方法。例如,您无法知道和增强准确的拼写。您应该考虑使用multi_field以多种方式处理该字段。

这是一个示例,您可以使用,使用curl命令在下面重新创建它。但是,我完全跳过使用“
porter”词干分析器。我保留它只是为了显示multi_field的工作方式。结合使用匹配,模糊性匹配和语音匹配可以使您走得更远。(请确保在进行语音匹配时不允许模糊不清-
否则您将获得无用的模糊匹配。:-)

#!/bin/bashexport ELASTICSEARCH_ENDPOINT="http://localhost:9200"# Create indexescurl -XPUT "$ELASTICSEARCH_ENDPOINT/play" -d '{    "settings": {        "analysis": { "text": [     "Michael",     "Heaney",     "Heavey" ], "analyzer": {     "metaphone": {         "type": "custom",         "tokenizer": "standard",         "filter": [  "my_metaphone"         ]     },     "porter": {         "type": "custom",         "tokenizer": "standard",         "filter": [  "lowercase",  "porter_stem"         ]     } }, "filter": {     "my_metaphone": {         "enprer": "metaphone",         "replace": false,         "type": "phonetic"     } }        }    },    "mappings": {        "jr": { "properties": {     "pty_surename": {         "type": "multi_field",         "fields": {  "pty_surename": {      "type": "string",      "analyzer": "simple"  },  "metaphone": {      "type": "string",      "analyzer": "metaphone"  },  "porter": {      "type": "string",      "analyzer": "porter"  }         }     } }        }    }}'# Index documentscurl -XPOST "$ELASTICSEARCH_ENDPOINT/_bulk?refresh=true" -d '{"index":{"_index":"play","_type":"jr"}}{"pty_surname":"Heaney"}{"index":{"_index":"play","_type":"jr"}}{"pty_surname":"Heavey"}'# Do searchescurl -XPOST "$ELASTICSEARCH_ENDPOINT/_search?pretty" -d '{    "query": {        "bool": { "should": [     {         "bool": {  "should": [      {          "match": {   "pty_surname": {       "query": "heavey"   }          }      },      {          "match": {   "pty_surname": {       "query": "heavey",       "fuzziness": 1   }          }      },      {          "match": {   "pty_surename.metaphone": {       "query": "heavey"   }          }      },      {          "match": {   "pty_surename.porter": {       "query": "heavey"   }          }      }  ]         }     } ]        }    }}'


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/401411.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号