IndexResponse response = client.prepareIndex("face", "book","1")
.setSource(jsonBuilder()
.startObject()
.field("name", "kimchy")
.field("postDate", "2010-03-01")
.field("message", "trying out Elastic Search")
.endObject()
)
.execute()
.actionGet();
String index = response.getIndex(); // index : "face"
SearchResponse r = client.prepareSearch("face")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(QueryBuilders.termQuery("name","kimchy"))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();
System.out.println(r);
SearchHit[] hits = r.getHits().getHits();
System.out.println(hits.length); // 0 Hits
for (SearchHit searchHit : hits) {
// no hits no data
}
Как исправить это, где проблема? Мои попытки дают 0 ударов. Я пробовал все, но я не мог исправить. Я буду рад, если кто-нибудь поможет мне исправить этот код. Если я напишу prepareIndex («twitter», «tweet», «1») и client.prepareIndex («twitter», «tweet», «1») это дает мне некоторые результаты, но я думаю, что это результат по умолчанию. Я хочу найти конкретное слово, которое я хочу.Как я могу указать и искать с помощью Elasticsearch
Хотя это решение работает, это означает, что вы должны «обновлять» свои индексы вручную. Поскольку я уверен, что @mconlin знает, но не сказал, обновление вручную для целей тестирования прекрасное, но будет иметь влияние на производительность, если это будет сделано по каждому запросу. лучше позволить Elasticsearch делать это автоматически в фоновом режиме. – DrTech