【发布时间】:2021-07-30 15:42:20
【问题描述】:
我搜索了我的问题,但找不到答案。我对 elasticsearch 还很陌生,我想我还没有了解令牌的概念。
我使用自定义 name_analyzer 构建了一个映射,该映射使用过滤器小写、唯一和 asciifolding 以及 preserve_original=true。
我有字段 search_combo_name,例如内容是这样的:
André, André Mustermann, andre.mustermann@gmail.com, Mustermann
当我使用 kibana 针对我的 name_analyzer 分析上面的字符串时,我得到以下结果:
{
"tokens" : [
{
"token" : "andre",
"start_offset" : 0,
"end_offset" : 5,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "andré",
"start_offset" : 0,
"end_offset" : 5,
"type" : "<ALPHANUM>",
"position" : 0
},
{
"token" : "mustermann",
"start_offset" : 13,
"end_offset" : 23,
"type" : "<ALPHANUM>",
"position" : 1
},
{
"token" : "andre.mustermann",
"start_offset" : 25,
"end_offset" : 41,
"type" : "<ALPHANUM>",
"position" : 2
},
{
"token" : "gmail.com",
"start_offset" : 42,
"end_offset" : 51,
"type" : "<ALPHANUM>",
"position" : 3
}
]
}
这是我期望的结果,但是这些令牌是用来做什么的? 当我使用 bool must/should 或 match 进行搜索时,elasticsearch 会搜索字段的内容而不是标记,对吗?
【问题讨论】:
标签: elasticsearch