不为失败找理由,要为成功找方法。

为什么querystring和term检索一个有数据一个没数据?

Elasticsearch | 作者 UnigroupAi | 发布于2019年05月10日 | 阅读数:3509

两个检索式有什么区别吗? 第一个有数据,第二个没有数据。{
  "from": 0,
  "size": 100,
  "query": {
    "query_string": {
      "query": "(TI:\"尼龙改性\")"
    }
  }
}

{
  "from": 0,
  "size": 100,
  "query": {
    "bool": {
      "filter": [
        {
          "terms": {
            "TI": [
              "尼龙改性"
            ]
          }
        }
      ]
    }
  }
}
已邀请:

ES1314 - 敬畏技术

赞同来自:

query_string:搜索的时候TI应该分词了;terms不会分词; 
 
"query": {
    "query_string": {
"quote_analyzer":"keyword",
      "query": "(TI:\"尼龙改性\")"
    }
  }
应该和terms就一样了

weizijun - elasticsearch fan

赞同来自:

看下TI是不是text类型?如果是,则数据是全文检索,会分词,你的query_string语句会分词。terms则不会分词,所以查不到

laoyang360 - 《一本书讲透Elasticsearch》作者,Elastic认证工程师 [死磕Elasitcsearch]知识星球地址:http://t.cn/RmwM3N9;微信公众号:铭毅天下; 博客:https://elastic.blog.csdn.net

赞同来自:

排查思路:“profile:true”看看分解查询结果。

要回复问题请先登录注册