使用JestClient从ElasticSearch检索文档,获取Double值而不是整数。
Index mapping -
"makeId": {
"type": "integer"
},
"makeName": {
"type": "keyword"
},
"yearId": {
"type": "integer"
}
我正在使用JestClient(在java中)获取字段值,我希望makeId和yearId的值为integer,但值返回为Double,
Jest maven Depandency-
<dependency>
<groupId>io.searchbox</groupId>
<artifactId>jest</artifactId>
<version>2.0.0</version>
</dependency>
String[] reqFields = { "makeName","makeId","yearId" };
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder();
BoolQueryBuilder boolquery = QueryBuilders.boolQuery();
boolquery.must(QueryBuilders.matchQuery("yearId", yearId));
searchSourceBuilder.query(boolquery).fetchSource(reqFields, null).size(9000);
Search.Builder searchBuilder = new Search.Builder(searchSourceBuilder.toString()).addIndex(indexName).addType(indexType);
SearchResult result = jestClient.execute(searchBuilder.build());
List<Hit<Map, Void>> hits = result.getHits(Map.class);
SearchResult result = jestClient.execute(searchBuilder.build());
{“take”:29,“timed_out”:false,“_shards”:{“total”:5,“successed”:5,“failed”:0},“hits”:{“total”:1466,“max_score”:1.0,“hits”:[{“_index”:“vehicle”,“_type”:“vehicle_dev”,“_id”:“836”,“_score”:1.0,“_source”:{“makeID”:2,“makeName”:“buick”,“yearid”:“2012}},{”_index“:”
(预期)
但下一行执行时-
List<Hit<Map, Void>> hits = result.getHits(Map.class);
值从2改为2倍即2.0。
@Shubam
使用index字段创建自己的模型(POJO)类,并给出适当的类型
示例
public IndexModel
{
private integer makeId;
private String makeName;
private integer yearId;
//Generate the setter and getters
List<IndexModel> IndexModelList = result.getSourceAsObjectList(IndexModel.class);
for( IndexModel indexModel: IndexModelList ){
indexModel.getyearId();
问题内容: 尝试访问我的ElasticSearch文档中的分析/标记化的文本。 我知道您可以使用Analyze API根据您的分析模块来分析任意文本。因此,我可以将文档中的数据复制并粘贴到Analyze API中,以查看如何对它们进行标记。 但是,这似乎不必要地耗时。有什么方法可以指示ElasticSearch在搜索结果中返回标记化文本?我已经浏览了文档,却没有发现任何东西。 问题答案: 看看另一
问题内容: 所以我有一个弹性的搜索索引,并且要向它发送带有时间戳的文档。我想知道是否有一种方法可以根据时间戳提取最后一个文档。即说要弹性给我最后一次的文档。 谢谢。 问题答案: 是的,您只需索取一个文档()并通过减少时间戳进行排序
问题内容: 我如何从Python的Elasticsearch中获得100000个寄存器?MatchAll查询仅检索10000。 问题答案: 就像已经指出的那样,我将使用Scan API来做到这一点。 您还应该阅读有关Elasticsearch python DSL中的扫描助手的信息,网址为 http://elasticsearch- py.readthedocs.io/en/master/help
问题内容: 我有 我想按 位置 获得 职位, 而不是关键 职位 。 我不想使用迭代。 还有其他方法可以基于索引获取Value吗? 问题答案: 您无法获得基于索引的值,只是那样行不通。一种解决方法是根据您的值创建一个新列表,然后根据索引获取值。
我正在运行Elasticsearch版本1.5.2。Logstash版本1.5.4。 大多数logstash设置都是默认的: 我检查了映射“http://localhost:9200/logstash-2015.09.15?pretty”,并且geoip.location映射为double而不是geo_point。 有什么建议如何正确地映射这个? 更多信息:
问题内容: 我在搜索时遇到问题,只是不知道该怎么做。我的文档具有以下形式: 假设会话ID的第一个时间戳是“登录”,最后一个时间戳是“注销”。我希望所有会话都具有所有“登录”和“注销”文档(如果可能,请按排序)。我设法通过聚合获得正确的时间戳: 但是我如何获得相应的文档?我也不介意我是否必须进行2次搜索(一次用于登录,一次用于注销)。我尝试了热门热门文章的汇总和排序工作,但是我总是会遇到解析错误:/