Java ElasticSearch 2.0.0中搜索时不一致
我正在做3个连续的步骤,如1-索引、2-搜索、3-删除。 我的映射:Java ElasticSearch 2.0.0中搜索时不一致,java,
elasticsearch,Java,
elasticsearch,我正在做3个连续的步骤,如1-索引、2-搜索、3-删除。 我的映射: PUT _template/discoveryes { "template" : "discoveryes-*", "settings" : { "number_of_shards" : 3, "number_of_replicas" : 0,
PUT _template/discoveryes
{
"template" : "discoveryes-*",
"settings" : {
"number_of_shards" : 3,
"number_of_replicas" : 0,
"index": {
"analysis": {
"filter": {
"en_stop_filter": {
"type": "stop",
"stopwords": ["_english_"]
} , "en_stem_filter": {
"type": "stemmer",
"name": "english"
}
},
"analyzer": {
"en_analyzer": {
"type": "custom",
"filter": ["icu_normalizer", "en_stop_filter", "en_stem_filter", "icu_folding"],
"tokenizer": "icu_tokenizer"
},
"default": {
"type": "custom",
"filter": ["icu_normalizer", "icu_folding"],
"tokenizer": "icu_tokenizer"
}
}
}
}
},
"mappings" : {
"discoveryes": {
"_source" : {
"enabled" : "true"
},
"properties" : {
"witID" : {
"type" : "string",
"index" :"not_analyzed"
},
"text" : {
"type" : "string",
"analyzer" : "en_analyzer"
},
"docID":{
"type":"string",
"index" :"not_analyzed"
}
}
}
}
}
在我的第一次操作中,我得到了正确的结果(意味着我索引了一些文档,搜索了一些关键字,这些关键字给出了正确的结果,然后删除了所有索引ID)
但是,当我尝试对相同的文档再次执行相同的操作时,并没有得到相同的结果
当我评论删除操作并执行这些操作时,我每次都会得到正确的结果,但是当我包含删除操作时,问题就出现了。
我正在用Java做所有这些操作
搜索操作的代码:
SearchRequestBuilder searchBuilder = client
.prepareSearch()
.setIndices("discoveryes-1")
.setTypes("discoveryes").setQuery(qb)
.setSize(100);
DeleteResponse rsp = client.prepareDelete().setIndex("discoveryes-1").setType("discoveryes")
.setId(witID)
.execute()
.actionGet();
删除操作的代码:
SearchRequestBuilder searchBuilder = client
.prepareSearch()
.setIndices("discoveryes-1")
.setTypes("discoveryes").setQuery(qb)
.setSize(100);
DeleteResponse rsp = client.prepareDelete().setIndex("discoveryes-1").setType("discoveryes")
.setId(witID)
.execute()
.actionGet();
在上面的代码行中,witID是我正在删除的索引ID
在这方面我能得到一些帮助吗?
谢谢请指定如何使用java Api?我的意思是给我们看代码。你有什么错误?我没有任何错误。我得到了不一致的结果。就像有时3个搜索结果(这是正确的)和1、2、0,这使得它不一致。使用delete api后,您的记录将明显不同,因为某些文档正在被删除。我有空索引,我索引了一些文档,搜索并删除了所有索引的文档。现在又是空索引。我在重复同样的操作,所以从技术上讲,无论什么数据被索引,都会被删除。所以这不重要。搜索结果应该是相同的。我不仅仅是在搜索文本。我也在指定ID。请指定如何使用java Api?我的意思是给我们看代码。你有什么错误?我没有任何错误。我得到了不一致的结果。就像有时3个搜索结果(这是正确的)和1、2、0,这使得它不一致。使用delete api后,您的记录将明显不同,因为某些文档正在被删除。我有空索引,我索引了一些文档,搜索并删除了所有索引的文档。现在又是空索引。我在重复同样的操作,所以从技术上讲,无论什么数据被索引,都会被删除。所以这不重要。搜索结果应该是相同的。我不仅仅是在搜索文本。我也在指定ID。