gpt4 book ai didi

java - Elasticsearch 6.1 Java API 搜索问题

转载 作者:太空宇宙 更新时间:2023-11-04 10:48:51 24 4
gpt4 key购买 nike

我正在使用 ES - 6.1 和相应的 java 版本的 api。我能够使用 java API 索引数据。我通过 kibana 验证了这一点。所有映射均已正确保存,但当我尝试搜索时出现错误。即使是最基本的搜索也会返回一个空集合。

// client is a reference to the TransportClient instance
SearchResponse searchResponse = this.client.prepareSearch(index).get().

当我尝试通过 getFields() 获取字段并进一步执行 getField(key) 时,出现空指针异常。我尝试进行故障排除,发现响应中没有返回任何对象。以下是我正在进行的基本搜索。

// index is the index I am interested to search under.
SearchResponse searchResponse = this.client.prepareSearch(index).get();

这是我尝试将代码从 1.7.3 Java API 迁移到最新版本时遇到的问题。此前,我们的实现没有发现任何问题。

我已经阅读了很多关于为此遇到的更改的文章,但没有发现适用于我的情况的解决方案。

我已使用存储映射的每个属性集重新索引了我的数据。我仍然没有得到我感兴趣的字段的响应。字段 Keyset 仍然是空值

以下是映射示例。

"street": {
"type": "text",
"store": true
},
"country": {
"type": "text",
"store": true
},
"city": {
"type": "text",
"store": true
}
---------------Some more fields--------------

附上调试器中变量的屏幕截图。 }

这是我在排除故障时收到的每次点击的响应。我在该索引中获得了正确的点击次数。附上调试器中我的变量的屏幕截图。 hits 是包含以下代码段响应的变量。

hits = searchResponse.getHits()

Debugger log for the values "hits" hold

感谢您的帮助。

-阿 git

最佳答案

我发现问题出在搜索方法上。

与之前的版本不同,新版本将以不同的方式获取 map 中的点击。

//in previous version (1.7.3)
hit.getFields()
// in new version (6.1.0)
hit.getSourceAsMap()

此外,我们可以像之前那样反序列化响应。

这里是link访问 elasticsearch 论坛,其中包含所有详细信息。感谢您的帮助。

-阿 git

关于java - Elasticsearch 6.1 Java API 搜索问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48072640/

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