使用JavaAPI的Elasticsearch
您好,我正试图通过遵循sql查询来执行弹性搜索查询,我希望使用JavaAPI实现相同的逻辑使用JavaAPI的Elasticsearch,java,
elasticsearch,Java,
elasticsearch,您好,我正试图通过遵循sql查询来执行弹性搜索查询,我希望使用JavaAPI实现相同的逻辑 select * from log , web where l.loghost = w.webhost and @datetime between '2016-05-20' AND '2016-05-25' log和web是不同的类型,索引设置为logstash log-*和logstash web*,@timestamp格式类似于“2016-05-20T17:14:01.037Z” 现在我有了下面的
select * from log , web where l.loghost = w.webhost and @datetime between '2016-05-20' AND '2016-05-25'
log
和web
是不同的类型,索引设置为logstash log-*
和logstash web*
,@timestamp
格式类似于“2016-05-20T17:14:01.037Z”
现在我有了下面的Java代码,但我不知道如何在两个日期之间设置,因此它不会返回预期的输出
SearchResponse response = client.prepareSearch("logstash-log-*","logstash-web-*")
.setTypes("log","web")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setFetchSource(new String[]{"*"}, null)
.setQuery(QueryBuilders.queryStringQuery("1.2.3.4").field("*_host"))// Query
.execute()
.actionGet();
请指导我是弹性搜索新手。提前感谢。您需要将a与查询\u字符串组合在a中:
然后
...
.setQuery(QueryBuilders.boolQuery().filter(qs).filter(range))
...
从“RangeQueryBuilder range=QueryBuilders.rangeQ……”中,我得到了错误消息“类型不匹配:无法从org.elasticsearch.index.query.RangeQueryBuilder转换到org.apache.lucene.queryparser.xml.builders.RangeQueryBuilder”,要使用的正确导入是导入org.elasticsearch.index.query.RangeQueryBuilder代码>非导入org.apache.lucene.queryparser.xml.builders.RangeQueryBuilder代码>对于QueryBuilders
,您有什么导入语句?我不明白您的问题是什么。请详细解释,以便我们提供帮助。此外,你不应该为这个问题创建答案,只需用其他信息更新你的问题。
...
.setQuery(QueryBuilders.boolQuery().filter(qs).filter(range))
...