应用ngrm Analyzer时需要文本的原始长度

时间:2019-04-30 07:14:50

标签: elasticsearch

将Bi-gram分析器应用于“名称”字段并且我检查doc[Name].value.length()时,它返回2,但是我想要“名称”的原始长度。 示例Infotech = 8需要返回8

"mappings": {
        "Data": {
            "properties": {
                "Name": {
                    "type":     "text",
                    "analyzer": "bigrams" ,
                    "similarity": "scripted_tfidf",
                     "fielddata": true,
                     "fields": {
                           "length": { 
                              "type":     "token_count",
                               "analyzer": "standard"
                                 }
                     }
                },

1 个答案:

答案 0 :(得分:0)

您必须在映射中添加关键字类型的字段,因为不会像这样进行分析:

            "fields": {

                   "keyword": { 

                          "type":"keyword"

                    }
            }

然后您可以使用来获得真实长度:

             doc['Name.keyword'].value.length()