【发布时间】:2013-10-11 15:09:12
【问题描述】:
如果我在 Elasticsearch 中有一个文档,其中一个字段包含术语“十”,是否有一个分析器/标记器允许在搜索“10”或“十”时匹配该文档?
【问题讨论】:
标签: search lucene elasticsearch
如果我在 Elasticsearch 中有一个文档,其中一个字段包含术语“十”,是否有一个分析器/标记器允许在搜索“10”或“十”时匹配该文档?
【问题讨论】:
标签: search lucene elasticsearch
我不相信,不。我相信this question 的答案仍然代表 ElasticSearch 和 Solr,不幸的是。
但是,如果您不需要很多匹配的数字(例如,只使用通常拼写出来的数字),那么使用 SynonymFilter 进行设置相当简单,例如:
"filter" : {
"synonym" : {
"type" : "synonym",
"synonyms_path" : "analysis/synonym.txt"
}
}
在“synonyms.txt”中有一个映射,例如:
zero, aught => 0
quarter => .25
half => .5
one => 1
two => 2
three => 3
four => 4
five => 5
six => 6
seven => 7
eight => 8
nine => 9
ten => 10
eleven => 11
twelve, dozen => 12
twenty => 20
thirty => 30
等等。
【讨论】: