悟空,拿我的打狗棒来

ES的_sql查询不返回长度超过ingore_above记录

Elasticsearch | 作者 wangxinrong | 发布于2024年10月11日 | 阅读数:3754

我测试的情况是:
1.如果条记录里有id, content两个字段,content设置成keyword类型,ignore_above设置成10。
2.使用_search接口,用DSL查询,指定"_source": ["id","content"],以id字段作为条件查询,返回的结果能正常显示。
3.使用_sql接口,用select id,content from xxx where id='xxx'查询,结果中的content字段值如果超过10,会不显示,小于10的显示。
4.把ignore_above值改为20,则是20以内的显示,大于20的不显示。
 
请问这是什么原因呢,怎么设置可以让content的内容都正常返回。
我猜测是_sql的查询没有取数据内容,也就是_source中的部分,只是从用于搜索相关的数据结构中取数据,因为超过ignore_above的内容不做索引,所以没办法返回,但这样不符合查询需求吧,平常大家查询,不是要看返回数据的内容吗,为什么会做这样的处理,而不是取_source中的内容?
已邀请:

要回复问题请先登录注册