默认分析器解析什么字符?

时间:2016-05-25 19:14:34

标签: elasticsearch

我正在尝试找到有关字符串分析器如何工作的文档,更具体地说,在构建索引的术语数组时,他们会解析哪些字符?

我看了herehere没有运气。

以下是一个例子:

如果我要将包含email字段且值为"test@hotmail.com"的文档编入索引,那么如果给出"test""hotmail.com",匹配查询将返回此文档作为查询。这表明分析器解析@个字符,但不解析.个字符。

我想更多地了解其他字符被视为普通字符,哪些字符被完全删除,以及哪些字符被解析?

有没有人知道我可以在哪里找到这些信息?

1 个答案:

答案 0 :(得分:1)

如您的第二个链接所述,分析字符串时启动的默认分析器是standard analyzer,它使用standard tokenizer

如果您检查最后一个链接,您会看到标准标记器强制执行Unicode Standard Annex #29的标记化规则。

在该文档中,有一个名为4 Word Boundaries的部分和另一个名为5 Sentence Boundaries的部分,它根据这些不同的规则并依赖于许多不同的Unicode序列来确切地定义了哪个字符和何时分割令牌(也取决于正在分析哪种语言。)

例如,句点.字符仅被视为句子边界,如果它直接后跟空格(电子邮件中不是这种情况)。