奇怪的内置 "classic" 分析器?
Weird built-in "classic" analyzer?
这是内置分析器的官方列表:https://www.elastic.co/guide/en/elasticsearch/reference/7.13/analysis-analyzers.html
令我惊讶的是,当我使用分析器的“经典”时,它起作用了,结果实际上是我想要使用的:
POST /_analyze
{
"analyzer": "classic",
"text": "this is a test 123-456-789"
}
并给出:[测试,123-456-789]
我不知道这个经典的分析器是什么,但它符合我的目的!
我想继续阅读以获取详细信息,但没有任何信息!
有“经典”分词器:
POST /_analyze
{
"tokenizer": "classic",
"text": "this is a test 123-456-789"
}
但是结果不一样:[this,is,a,test,123-456-789]
那么问题来了,有人知道这个“经典”分析仪是什么吗?
我想一般来说,如何检查弹性搜索中的任何内置分析器设置?
ClassicAnalyzer
是一个原生的 Lucene 分析器,由以下部分组成:
classic
tokenizer
classic
token filter
lowercase
token filter
stop
token filter with a fixed set of english stop words
因此您正在进行的第二个测试未完成,因为它缺少令牌过滤器,它应该是这样的:
POST /_analyze
{
"tokenizer": "classic",
"filter": [
"classic",
"lowercase",
"stop"
],
"text": "this is a test 123-456-789"
}
这会产生与 classic
分析器相同的标记,即 [ test, 123-456-789 ]
这是内置分析器的官方列表:https://www.elastic.co/guide/en/elasticsearch/reference/7.13/analysis-analyzers.html
令我惊讶的是,当我使用分析器的“经典”时,它起作用了,结果实际上是我想要使用的:
POST /_analyze
{
"analyzer": "classic",
"text": "this is a test 123-456-789"
}
并给出:[测试,123-456-789]
我不知道这个经典的分析器是什么,但它符合我的目的! 我想继续阅读以获取详细信息,但没有任何信息!
有“经典”分词器:
POST /_analyze
{
"tokenizer": "classic",
"text": "this is a test 123-456-789"
}
但是结果不一样:[this,is,a,test,123-456-789]
那么问题来了,有人知道这个“经典”分析仪是什么吗? 我想一般来说,如何检查弹性搜索中的任何内置分析器设置?
ClassicAnalyzer
是一个原生的 Lucene 分析器,由以下部分组成:
classic
tokenizerclassic
token filterlowercase
token filterstop
token filter with a fixed set of english stop words
因此您正在进行的第二个测试未完成,因为它缺少令牌过滤器,它应该是这样的:
POST /_analyze
{
"tokenizer": "classic",
"filter": [
"classic",
"lowercase",
"stop"
],
"text": "this is a test 123-456-789"
}
这会产生与 classic
分析器相同的标记,即 [ test, 123-456-789 ]