2016-05-30 2 views
2

Это JSON, что я хочу использовать для поиска:Как искать поле JSON в elasticsearch с помощью java?

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

Как найти все JSON, которые имеют ACCOUNT_ID начиная с 1?

+0

Пожалуйста, очистите его, если вы имеете в виду: префикс ACCOUNT_ID = 1 или ACCOUNT_ID от 1, 2, 3, .....? – sunkuet02

+0

@AbdullaAlSun В вопросе говорится, что значение идентификатора учетной записи отличается в разных JSON (отдельные документы). –

+0

ACCOUNT_ID - значение строки. Так что прямо сейчас в примере это «123», я хочу знать, как получить все JSON с ACCOUNT_ID, начиная с «1». или –

ответ

1

Из того, что я вижу в ваших комментариях, вы пытаетесь найти идентификатор, начинающийся с 1, например. Хорошо, если ваш анализатор является стандартным, идентификатор «123» обозначается как «123». Вы можете использовать подстановочный знак и искать как «1 *». Будьте осторожны с использованием подстановочных знаков, потому что это требует некоторой памяти.

Смотрите здесь: QueryString - Wildcard

2

Вы можете использовать подстановочные elasticsearch для поиска ACCOUNT_ID, который начинается с 1

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

В Java, вы можете попробовать что-то вроде этого:

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

QueryBuilders.wildcardQuery («ACCOUNT_ID», «1 *») дает нулевые образы. Я имею в виду хиты: [] пуст –

+0

Можете ли вы загрузить свою Java-программу? – Rose

Смежные вопросы