itsyarkee

term 操作如何查询中文

  •  
  •   itsyarkee · Dec 1, 2015 · 8656 views
    This topic created in 3827 days ago, the information mentioned may be changed or developed.
    实践中发现 filter term 操作貌似不支持中文查询。举下面这两个例子。
    1.查询英文名,可以查到结果:
    {'query': {'filtered': {'filter': {'term': {'eng_name': ["zhangshan"]}}, 'query': {'match_all': {}}}}}

    2.查询中文名,却查不到:
    {'query': {'filtered': {'filter': {'term': {'chn_name': ["张三"]}}, 'query': {'match_all': {}}}}}


    可什么办法可以让 term 支持中文查询呢?
    4 replies    2015-12-01 20:29:36 +08:00
    knightdf
        1
    knightdf  
       Dec 1, 2015
    这取决于你用什么做的 index_analyzer
    slixurd
        2
    slixurd  
       Dec 1, 2015
    1 楼正解
    term filter 是过滤被 analyzed 的字段的。
    不是简单模糊匹配。
    sunchen
        4
    sunchen  
       Dec 1, 2015   ❤️ 1
    当你理解一段文本怎么变成倒排索引,就能理解 term 查询是干什么的了。

    假如 “当你理解一段文本怎么变成倒排索引,就能理解 term 查询是干什么的了” 这句话被 index_analyzer 分析成 ”当/你/理解/一段/文本/怎么/变成/倒排索引/就/能/理解/ term /查询/是/干什么/的/了“ 之后, 索引里的 term 就会是这些打散的词, 此时你用 term 查询查”变成倒排索引“这个 term 时是查不到任何东西的。 当你用 match 查询查询“变成倒排索引”时, analyzer 会先把查询串切成“变成/倒排索引”,这个时候就能查到东西了。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5346 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 03:55 · PVG 11:55 · LAX 20:55 · JFK 23:55
    ♥ Do have faith in what you're doing.