A. Elasticsearch 查詢怎麼返回指定的欄位值
使用 _source 過濾。
http://localhost:9200/_search?_source=name
這樣便過濾除了 name 欄位。
如果使用 Request Body 的話
GET/_search
{
"_source":"name",
"query":{
//...
}
}
設置為false將會不返回任何 field
GET/_search
{
"_source":false,
"query":{
"term":{"user":"kimchy"}
}
_source 還可以支持一些匹配規則,下面的例子來自官方文檔:
GET/_search
{
"_source":"obj.*",
"query":{
"term":{"user":"kimchy"}
}
}
GET/_search
{
"_source":["obj1.*","obj2.*"],
"query":{
"term":{"user":"kimchy"}
}
}
GET/_search
{
"_source":{
"includes":["obj1.*","obj2.*"],
"excludes":["*.description"]
},
"query":{
"term":{"user":"kimchy"}
}
}
文檔地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-source-filtering.html
B. java可以同時查詢es和mysql嗎
可以的,不過查詢處理的數據你要進行拼裝,一般都是先查詢es,如果找不到數據,再查詢mysql
C. java es搜索引擎有沒有in的語句
獲取數據:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比較高效
}
D. Java代碼查詢es 的索引是yellow的狀態,怎麼可以查詢不報錯
建議提前檢查,為yellow直接提醒運維去維護為green。不過我這邊用的es6.2.3yellow是正常查詢的。建議你檢查一下環境配置應該不是yellow的問題。試了一下;為red都可以正常查詢的(java代碼查詢結果和下圖es-head查詢結果一致)
E. Java查詢ES會佔用Linux文件句柄嗎
這是肯定的,ES是吃內存的,肯定會佔用句柄數的,但是你說的這種情況模糊不清,我也不太了解,如果ES合理的話,不會出現這種問題,你可以查看一下是哪個進程佔用了句柄,不就一目瞭然了?
命令:
lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|more
得到兩列數據,第一列是句柄數,第二列是id
ps aef|grep id
然後,一目瞭然
請採納,謝謝
F. elasticSearch Java API 怎麼將查詢出來的數據類似sql 一樣的distinct 去重某個欄位
1、首先要打開SQL的管理工具,選擇一個資料庫,如下圖所示。
G. JAVA查詢eslasticsearch報錯,求助
網頁鏈接
希望能夠幫到你
H. java 操作es多索引查詢的時候,可不可以首先指定一個索引的查詢條件,然後在進行多索引查詢
你建立的是聯合索引,按照索引中欄位順序使用才會最大化的發揮索引的作用。
索引的建立不需要看主鍵有幾個欄位,而是看你的查詢條件經常用到哪幾列,
如果經常同時用到好幾列,就可以在這幾列上建聯合索引,
如果查詢條件經常都只是用到某一個欄位,只需要在該欄位上建一個單獨索引
I. java elasticsearch 如何對兩個索引進行關聯查詢
Java API 支持多個index和多個Type同時查詢,但是Elasticsearch是非關系型(NoSQL),所以不能關聯查詢。
J. 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>