2016-05-30 58 views
2

這是JSON,我想用一個搜索:如何使用java在elasticsearch中搜索JSON字段?

{ 
    "_index" : "test", "_type" : "insert", "_id" : "3", 
    "_version" : 2, "found" : true, 
    "_source" : { 
     "ACCOUNT_ID" : "123", 
     "CONTACT_ID" : "ABC" 
    } 
} 

如何搜索所有具有ACCOUNT_ID從1開始的JSON

+0

請清除它,如果,您的意思是:ACCOUNT_ID = 1的前綴或ACCOUNT_ID從1,2,3,.....? – sunkuet02

+0

@AbdullaAlSun問題說明Account ID值在不同的JSON(獨立文檔)中是不同的。 –

+0

ACCOUNT_ID是一個字符串值。所以現在在這個例子中它是「123」,我想知道如何以ACCOUNT_ID從「1」開始檢索所有的JSON。或 –

回答

1

從我看到你的評論中,你正試圖找到id從1開始。那麼如果你的分析儀是標準分析儀,那麼ID「123」就像「123」一樣被標記。你可以使用通配符並像'1 *'一樣搜索。小心使用通配符,因爲它需要一些內存。

在這裏看到:QueryString - Wildcard

2

您可以使用通配符elasticsearch搜索從1

GET index/_search 
{ 
     "query": { 
     "wildcard": { 
      "ACCOUNT_ID ": { 
      "value": "1*" 
      } 
     } 
     } 
    } 

在Java中啓動一個ACCOUNT_ID,你可以嘗試這樣的事:

QueryBuilders.wildcardQuery("ACCOUNT_ID ", "1*"); 
+0

QueryBuilders.wildcardQuery(「ACCOUNT_ID」,「1 *」)正在給零點擊。我的意思是:[]是空的 –

+0

你可以上傳你的Java程序嗎? – Rose

相關問題