我测试的情况是:
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中的内容?
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中的内容?
0 个回复