是否可以创建可按空间拆分索引然后创建两个令牌的自定义elasticsearch分析器?一是空间前的一切,二是空间。例如:我存储的记录字段包含以下文本:“ 35 G”。现在,我想通过仅在该字段中键入“ 35”或“ 35 G”查询来接收该记录。因此,Elastic应该创建两个令牌:[‘35’,‘35 G’],并且不再更多。
如果可能,如何实现?
可使用path_hierarchytokenizer实现。
path_hierarchy
PUT test { "settings": { "analysis": { "analyzer": { "my_analyzer": { "tokenizer": "my_tokenizer" } }, "tokenizer": { "my_tokenizer": { "type": "path_hierarchy", "delimiter": " " } } } } ... }
现在
POST test/_analyze { "analyzer": "my_analyzer", "text": "35 G" }
输出
{ "tokens": [ { "token": "35", "start_offset": 0, "end_offset": 2, "type": "word", "position": 0 }, { "token": "35 G", "start_offset": 0, "end_offset": 4, "type": "word", "position": 0 } ] }