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
}
我该如何解决这个问题,这里的问题在哪里?如果我写了prepareIndex(“twitter”,“tweet”,“1”)和client.prepareIndex,我会尝试一切,但我无法修复。我会很高兴,如果有人帮我解决这个问题。 (“twitter”,“tweet”,“1”)它给了我一些结果,但我认为这是默认结果。我想搜索特定的单词,我想要的。如何使用Elasticsearch进行索引和搜索
尽管此解决方案有效,但它意味着您应该手动刷新您的索引。正如我确信@mconlin知道,但没有说过,手动刷新用于测试目的很好,但如果在每个请求上完成,将会对生产产生性能影响。最好让Elasticsearch在后台自动执行它。 – DrTech