es的query string问题
来源:互联网 发布:大底翻倍指标源码 编辑:程序博客网 时间:2024/05/10 11:14
使用es的query string方式检索遇到的问题:
场景:
有一个索引:
test_index
多个type:
one_type,two_type
这两个type之中都有一个my_field的字段,其中one_type中的my_field,使用mmseg分词,而two_type不分词
大致mapping结构如下:
"one_type":{"properties":{"my_field":{"type":"string","analyzer":"mmseg"}}}"one_type":{"properties":{"my_field":{"type":"string","index":"not_analyzer"}}}
如果使用类似的查询语句检索test索引中的文档,可能导致无法找到结果:
{ "from": 0, "size": 25, "query": { "bool": { "must": [ { "query_string": { "query": "综合性期刊", "fields": [ "my_field" ], "default_operator": "and" } } ] } }}
我猜测原因大概如下:
query string方式采用的分词方式为字段之中指定的分词方式,上面的情况,如果只看字段名my_field,那么该字段有两种分词方式,分别是one_type指定的mmseg和two_type中指定的not_analyzer,此时,如果不指定使用的是哪个类型,那么es就无法弄清楚到底使用哪种分词方式(推测可能采用了一种非我们所愿意的方式),因此导致无法检索出结果。
有如下解决方式:
1、在mapping定义是采用不同的字段名
2、在检索时,加上类型名3、如果是相同的字段名,都采用相同的分词方式
0 0
- es的query string问题
- ES的多种搜索机制:query string search,query DSL,query filter,full-text search,phrase search,highlight search
- es遇到的问题
- es中的query
- Es Query Related
- es的几种常用query搜索语法
- Elasticsearch Query String Query
- Query String Query【官网】
- 解决mysql数据库的Query failed: Incorrect string value: ' 。。。问题。(显示中文为?????)
- OpenGL ES 的一些问题
- es使用遇到的问题
- ES存储的时间问题
- DNN中query string的应用
- curl传递query string参数的转义
- ES参考之Query DSL
- es query time gte lte
- Hibernate Query的小问题
- es问题
- DontDestroyOnLoad 重复实例化
- Binary Tree Level Order Traversal
- [Android] Android开发优化之——使用软引用和弱引用
- 身在户外该如何使用求生哨
- Nginx+PHP-FPM的优化技巧(2)
- es的query string问题
- poj 2184 Cow Exhibition (变形的01背包)
- https,https的本地测试环境搭建,asp.net结合https的代码实现,http网站转换成https网站之后遇到的问题
- handle(句柄)
- oracle 数据库管理基础
- java学习笔记25——HashMap
- 特殊字符读法
- window.open和window.location.href的几种用法
- 背包问题