gpt4 book ai didi

java - ElasticSearch搜索字段值不返回

转载 作者:行者123 更新时间:2023-12-03 00:37:12 24 4
gpt4 key购买 nike

可以说我在Elastic Search中有文档,该文档的_source中确实包含字段“provider”。
我尝试了很多查询,但是似乎没有一个查询返回带有搜索值的文档。
文件:

"_source" : {
"jobs" : [ ],
"provider" : {
"id" : "1",
"name" : "Coursera"
},
"sckLevels" : [ ],
"scks" : [ ],
"trArea" : [ ],
"trElems" : [ ],
"training" : {
"description" : "Cyber sec desc",
"id" : "0",
"img" : "img link",
"link" : "https://google.com",
"name" : "Cyber sec",
"trainingProvID" : "1"
}
我的查询代码是:
SearchRequest searchRequest = new SearchRequest(index);
SearchSourceBuilder sourceBuilder = new SearchSourceBuilder();
sourceBuilder.query(QueryBuilders.termQuery("provider", "Coursera"));
searchRequest.source(sourceBuilder);
this.multiRequest.add(searchRequest);
我的回答是空白。
谢谢。

最佳答案

您的Elasticsearch查询绝对没有问题

  • 似乎provider字段是对象或嵌套类型的,而在查询中您只是提到Coursera,但应与name字段的provider子字段匹配,并且基于对象或嵌套的数据类型,您需要修改查询。
  • 您正在使用未经分析的term query并用于关键字(即完全匹配),如果将name字段定义为text,则它将在索引时间将其转换为小写,而带有大写CourseraC将不匹配,您需要使用match查询在文本字段上。
  • 关于java - ElasticSearch搜索字段值不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63618058/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com