导航:首页 > 编程语言 > java查询elasticsearch

java查询elasticsearch

发布时间:2023-05-17 07:14:41

A. 如何使用elasticsearch java

用2个Map作为传参,一个是must,一个是should。代码如下:

//创建查询
SearchRequestBuildersrb=client.prepareSearch(INDEX);
srb.setTypes(ASK_TYPE);
srb.setSearchType(SearchType.DFS_QUERY_THEN_FETCH);
//分页
srb.setFrom((pageNo-1)*pageSize).setSize(pageSize);
//按时间启毁皮倒序
SortBuildersortBuilder=SortBuilders.fieldSort("date").order(SortOrder.DESC);
srb.addAggregation(aggregation);//聚合
srb.addSort(sortBuilder);//排序

/**********************主要看这里start*********************************/

if(null!=mustMap&&mustMap.size()>0){

//创建一个查询
BoolQueryBuilderqueryBuilder=QueryBuilders.boolQuery();

//这里查询的条件用map传递
for(Stringkey:mustMap.keySet()){
queryBuilder.must(QueryBuilders.termQuery(key,mustMap.get(key)));
}
悄差//这里查询的条件用map传递
for(Stringkey:shouldMap.keySet()){
queryBuilder.should(QueryBuilders.termQuery(key,mustMap.get(key)));
}
//查询
srb.setQuery(queryBuilder);
}
/**********************主要看这里end*********************************/
//请余核求
SearchResponseresponse=srb.get();
//更多看这里:http://www.sojson.com/tag_elasticsearch.html

B. elasticSearch用java查询问题

你这个查询用filter、must皆可,推荐filter

Stringindex="indexName";//你的index名称
Stringtype="my_table";

BoolQueryBuilderboolQuery塌野=QueryBuilders.boolQuery();
//boolQuery.must(QueryBuilders.termQuery("a",1));
//boolQuery.must(QueryBuilders.termsQuery("b",2,3));
boolQuery.filter(QueryBuilders.termQuery("a",1));
boolQuery.filter(QueryBuilders.termsQuery("b",2,3));

SearchResponsesearchResponse=client.prepareSearch(index).setTypes(type)
隐备.setQuery(boolQuery)
.addSort("c",SortOrder.ASC)
.addSort("d",SortOrder.ASC)
.storedFields("c","d")
灶衫毁.get();

C. java查询elasticsearch 有哪些索引

java查询elasticsearch 有哪些索引
次查询可分为下面四个步骤:
1.创建连接ElasticSearch服务的client.
索引在ElasticSearch服务器上,进行索引的查询首先要和服务器创建连接,这是第一步。
<code>Client client = TransportClient.builder().build()
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("127.0.0.1"), 9300));
</code>

2.创建QueryBuilder.
QueryBuilder可以设置单个字段的查询,也可以设置多个字段的查询.
e.g.1: 查询title字段中包含hibernate关键字的文档:
<code>QueryBuilder qb1 = termQuery("title", "hibernate");
</code>

e.g.2: 查询title字段或content字段中包含git关键字的文档:
<code>QueryBuilder qb2= QueryBuilders.multiMatchQuery("git", "title","content");
</code>

3.执行查询
通过client设置查询的index、type、query.返回一个SearchResponse对象:
<code>SearchResponse response = client.prepareSearch("blog").setTypes("article").setQuery(qb2).execute()
.actionGet();
</code>

4.处理查询结果
SearchResponse对象的getHits()方法获取查询结果,返回一个SearchHits的集合,遍历集合获取查询的文档信息:
?

1
2

<code>SearchHits hits = response.getHits();
</code>

D. elasticSearch Java API 怎么将查询出来的数据类似sql 一样的distinct 去重某个字段

1、首先要打开SQL的管理工具,选择一个数据库唤册,如下图所示。

E. elasticsearch 怎样用java获得分析器

public class QueryText {

public static void main(String[] args) {
try (Node node = NodeBuilder.nodeBuilder()
.clusterName("net.01")
.client(true).node()) {
//创陵链毁建elastic客户端
Client client = node.client();

//读取查询模板唤穗,然后设置参数查询
try (BufferedReader bodyReader = new BufferedReader(new InputStreamReader(new FileInputStream("D:\common.template"), "utf8"))) {
String line = null;
StringBuilder strBuffer = new StringBuilder();
while ((line = bodyReader.readLine()) != null) {
strBuffer.append(line);
strBuffer.append("\n");
}

Map<String, Object> search_params = new HashMap<>();
search_params.put("from", 1);
search_params.put("size", 5);
search_params.put("key_words", "opencv sift");

QueryBuilder qb = QueryBuilders.templateQuery(strBuffer.toString(), search_params);
SearchResponse sr;
SearchRequestBuilder srb;
srb = client.prepareSearch("blog_v1")
.setTypes("尺备blogpost")
.setQuery(qb);
sr = srb.get();

for (SearchHit hit : sr.getHits().getHits()) {
System.out.println(hit.getSourceAsString());
}
} catch (UnsupportedEncodingException ex) {

} catch (FileNotFoundException ex) {

} catch (IOException ex) {

}

}
}
}

F. 用java代码怎么通过ElasticSearch的接口来查询数据

两表根据两个字段关联即橘坦可
如唤物 select distinct b.type_name from news a,news_type b where a.news_type_id= b.type_id and a.news_type_id = '1'和伍液

G. java elasticsearch 如何对两个索引进行关联查询

Java API 支持多个index和多个Type同时查询,但是Elasticsearch是非关系型(NoSQL),所以不能关联查询。

H. java SQL查询elasticsearch

可以添加筛选条件,将 columnName is not null 加在where后

I. java elasticsearch 如何对两个索引进行关联查询

Java API 支持多个index和多个Type同旅游时查询,但是Elasticsearch是非关系搜镇芹型(NoSQL),所以不世毕能关联查询。

J. Elasticsearch 查询表达式

Elasticsearch 是一个开源的搜索引擎,Elasticsearch 使用 Java 编写的,它的内部使用 Lucene 做索引与搜索,但是它的目的是使全文检索变得简单, 通过隐藏 Lucene 的复杂性,取而代之的提供一套简单一致的 RESTful API。

已经在其他文档旁脊中详细介绍,此次仅做简单步骤介绍

查询表达式( Query DSL )是一种非常灵活又富有表现力的查询语言, Elasticsearch 使用它可以以简单的 JSON 接口来展现 Lucene 功能的绝大部分

上述查询会搜索ES中的所有索引,但通常只需要去固定一个或几个索引中搜运穗渗索,搜索全部无疑会造成资源的浪费,在ES中可以通过以下几种方法来指定索引

以上表示在 mysql-shop_trades-order_statics 索引下查找数据

这里也可以用逗号分割多个匹配索引

ES本身没有group关键词搜索,但支持聚合查询,,需要使用关键字aggs

order by:注意日期格式和数值格式才支持排序;文本不支持,如果要排序, 需把字段设置为not analysis

select distinct(id) from table

match_phrase :查询分析文本,创建词组查询

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase.html#query-dsl-match-query-phrase

延族凳伸

阅读全文

与java查询elasticsearch相关的资料

热点内容
安卓手机微信发不出视频怎么弄 浏览:229
压缩机专用工具 浏览:575
qtcreator可以编译cp吗 浏览:405
小项目是云服务器还是本地好 浏览:14
墨痕斋是什么游戏的服务器 浏览:942
word文件如何压缩大小 浏览:279
遵义联通服务器地址是什么 浏览:29
ansys约束命令流 浏览:814
解压软件电脑版如何下载 浏览:791
闪电匕首算法球 浏览:692
linuxredis停止命令 浏览:670
大麦账号怎么加密 浏览:113
穿越火线怎么找服务器 浏览:526
秘密加密社交软件app 浏览:256
c语言编译器怎么找文件 浏览:836
数学不好能编程吗 浏览:254
微云里的视频加密 浏览:41
3大加密货币交易平台 浏览:647
钣金激光切割机编程 浏览:496
vivo手机手电筒app在哪里 浏览:787