elasticsearch 在elasticsearch索引中插入一个文档,并由分析仪对其进行分析,elasticsearch,indexing,tokenize,elasticsearch,Indexing,Tokenize" /> elasticsearch 在elasticsearch索引中插入一个文档,并由分析仪对其进行分析,elasticsearch,indexing,tokenize,elasticsearch,Indexing,Tokenize" />

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"
}