【发布时间】:2019-05-27 00:40:45
【问题描述】:
是否可以创建自定义的弹性搜索分析器,它可以按空间分割索引,然后创建两个令牌?一是空间之前的一切,二是一切。 例如:我已经存储了具有以下文本的字段的记录:'35 G'。 现在我想通过在该字段中仅输入“35”或“35 G”查询来接收该记录。 所以弹性应该创建两个标记:['35', '35 G'] 等等。
如果可以,如何实现?
【问题讨论】:
标签: elasticsearch
是否可以创建自定义的弹性搜索分析器,它可以按空间分割索引,然后创建两个令牌?一是空间之前的一切,二是一切。 例如:我已经存储了具有以下文本的字段的记录:'35 G'。 现在我想通过在该字段中仅输入“35”或“35 G”查询来接收该记录。 所以弹性应该创建两个标记:['35', '35 G'] 等等。
如果可以,如何实现?
【问题讨论】:
标签: elasticsearch
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
}
]
}
【讨论】: