我试图编写一个分析器来索引地址字段。 该字段和查询可以包含城市,国家,街道名称/数字,邮政编码的多种组合。应忽略字母大小写和单词顺序。我还需要处理不同的语言。 如果我有一个包含" los angeles" - 目前我通过查询" los"或者"安吉尔斯"。但不是" los angeles"。我不能使用关键字标记化,因为这只会在整个术语中搜索匹配...那么我应该怎么做呢? 编辑 - 这是PREFIX搜索。 EDIT2 - 当我使用标准的标记器时 - 搜索适用于" los"," los angeles"," angeles"," angeles los" - 但不是" lo"例如......我也需要前缀搜索。如果我使用" match_phrase_prefix"而不是"前缀"查询 - 我得到了" los ange"上班。但是必须保留单词顺序......并且添加数字并不能找到匹配项。 例如,如果该字段包含" los angeles 32" - " los 32"不回来......
感谢。
analysis: {
analyzer: {
phone_analyzer: {
type: "custom",
tokenizer: "keyword",
filter: [
"word_delimiter_for_phone"
]
}
address_analyzer: {
type: "custom",
tokenizer: "standard",
filter: ["trim", "lowercase",'asciifolding']
}
},
filter: {
word_delimiter_for_phone: {
type: "word_delimiter",
catenate_numbers: true,
preserve_original: true
}
}