elasticsearch 在elasticsearch索引中插入一个文档,并由分析仪对其进行分析
我定义了一个分析仪,如:elasticsearch 在elasticsearch索引中插入一个文档,并由分析仪对其进行分析,elasticsearch,indexing,tokenize,elasticsearch,Indexing,Tokenize,我定义了一个分析仪,如: PUT /train-music { "settings": { "analysis": { "analyzer": { "music_analyser": { "filter": [ "lowercase", "snowball" ], "type": "custom", "tokenizer": "s
PUT /train-music
{
"settings": {
"analysis": {
"analyzer": {
"music_analyser": {
"filter": [
"lowercase",
"snowball"
],
"type": "custom",
"tokenizer": "standard"
}
}
}
}
}
我的火车音乐索引的映射如下所示:
PUT /train-music/_mapping/music
{
"properties": {
"instruments": {
"type": "string",
"analyzer": "music_analyser"
}
}
}
然后我插入一个文档:
POST /train-music/music/1
{
"id": 1452,
"style": "rock",
"instruments":"battery, electric guitar, guitar, piano"
}
我期待着类似(我伪造词干):
{
“id”:1452,
“风格”:“摇滚”,
“乐器”:“击球手、电吉他、吉他、吉他、钢琴”
}
但当我执行此操作时:
GET/train music/music/1
而不是让我的乐器字段很好地进行标记化和词干化,我得到了与输入相同的东西。我应该怎么做才能使我的分析器在我要索引的文档上工作,我应该在我要索引文档时添加一些内容吗?你不应该做任何事情,这是通过Elasticsearch在幕后完成的。如果您想查看实际索引了哪些术语,可以使用
GET /train-music/music/_search
{
"fielddata_fields": ["instruments"]
}
即使在编制索引之前,您也可以使用以下命令检查分析器是否工作:
非常感谢:)
GET /train-music/_analyze
{
"analyzer" : "music_analyser",
"text" : "battery, electric guitar, guitar, piano"
}