導航:首頁 > 編程語言 > 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相關的資料

熱點內容
遵義聯通伺服器地址是什麼 瀏覽:29
ansys約束命令流 瀏覽:814
解壓軟體電腦版如何下載 瀏覽:791
閃電匕首演算法球 瀏覽:692
linuxredis停止命令 瀏覽:670
大麥賬號怎麼加密 瀏覽:113
穿越火線怎麼找伺服器 瀏覽:526
秘密加密社交軟體app 瀏覽:256
c語言編譯器怎麼找文件 瀏覽:835
數學不好能編程嗎 瀏覽:254
微雲里的視頻加密 瀏覽:41
3大加密貨幣交易平台 瀏覽:647
鈑金激光切割機編程 瀏覽:496
vivo手機手電筒app在哪裡 瀏覽:787
單片機晶振電路電容 瀏覽:887
穿越火線河南一區伺服器雲主機 瀏覽:41
文件夾與快捷方式顯示一致 瀏覽:879
幻影伺服器怎麼看金錢 瀏覽:349
小米手機怎麼用app減肥 瀏覽:893
本機如何與雲伺服器互通 瀏覽:652