首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(elasticsearch)不区分大小写的模式分析器无法按预期工作(已解决-用户错误)

(elasticsearch)不区分大小写的模式分析器无法按预期工作(已解决-用户错误)
EN

Stack Overflow用户
提问于 2021-08-02 13:59:50
回答 1查看 46关注 0票数 0

我想我在这里的某个地方犯了一个错误,任何帮助识别它的人都将不胜感激。我有一个自定义模式分析器/记号赋予器对:

(从_settings调用到我的索引的相关片段:

代码语言:javascript
复制
   "analysis" : {
      "analyzer" : {
        "external_id_analyzer" : {
          "tokenizer" : "external_id_tokenizer"
        }
      },
      "tokenizer" : {
        "external_id_tokenizer" : {
          "flags" : "CASE_INSENSITIVE",
          "pattern" : "[,_ -]",
          "type" : "pattern"
        }
      }
    },

并且此分析器应用于索引上的一个字段:

代码语言:javascript
复制
    "extId" : {
      "type" : "text",
      "boost" : 10.0,
      "term_vector" : "with_positions_offsets",
      "analyzer" : "external_id_analyzer"
    }

我的理解是,CASE_INSENSITIVE标志应该允许在不区分大小写的情况下匹配文本,然而,当我解释一个查询时,很明显在使用这个分析器时,匹配的文本区分大小写。

查询"DATA-HIR“的结果

Hit包含"extId" : "DATA-HIR_2014...",

解释详细信息:

代码语言:javascript
复制
 "value" : 11.519202,
 "description" : "weight(extId:DATA in 7) [PerFieldSimilarity], result of:",
 ...
 "value" : 25.37294,
 "description" : "weight(extId:HIR in 7) [PerFieldSimilarity], result of:",

另一方面,查询"DATA-hir“得到相同的结果,但得分要低得多,因为解释计划缺少"HIR”匹配...

还有另一个字段具有相似的数据(只是值的" data -HIR“部分),但boost要低得多,它使用默认的分析器,而explain计划在那里显示不区分大小写的匹配。

因此,很明显,默认分析器匹配不区分大小写,但模式分析器不是。对于我在这个过程中犯了什么错误,有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2021-08-02 14:20:31

当然,只是花时间把它打出来,并描述它,帮助我解决了它……我错过了自定义分析器也需要指定分析器的类型……在我的例子中,我的自定义分析器唯一需要的更改是标记化,所以我只需要将“标准”分析器添加到我的分析器定义中。例如,

代码语言:javascript
复制
   "analysis" : {
      "analyzer" : {
        "external_id_analyzer" : {
          "type" : "standard",
          "tokenizer" : "external_id_tokenizer"
        }
      },
      "tokenizer" : {
        "external_id_tokenizer" : {
          "pattern" : "[,_ -]",
          "type" : "pattern"
        }
      }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68622907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档