【发布时间】:2019-06-30 14:09:06
【问题描述】:
我已将 firstName = "Jean-Marc" 的数据(人)编入索引,并且我希望能够使用不同查询的组合找到此人,例如对于 firstName "Jean-Marc",它应该是可以搜索: “Jean-Marc”和“Jean Marc”(带空格或破折号)
这是映射:
"firstName": {
"type": "keyword",
"normalizer": "keyword_normalizer",
"fields": {
"analysed": {
"type": "text",
"analyzer": "hyphen_analyzer",
"search_analyzer": "standard",
"fielddata": true
}
}
}
还有设置:
"char_filter": {
"allowOnlyChar": {
"pattern": "[^A-Za-z]",
"type": "pattern_replace",
"replacement": " "
}
}
"analyzer": {
"hyphen_analyzers": {
"filter": "lowercase",
"char_filter": [
"allowOnlyChar"
],
"type": "custom",
"tokenizer": "standard"
}
}
当我保留破折号时,我得到了这个人,但空白查询没有结果
我使用弹性 6.2.4
【问题讨论】:
标签: elasticsearch search whitespace hyphen