在ElasticSearch 2.0.0中搜索时不一致

时间:2016-02-04 07:09:13

标签: java elasticsearch

我正在做 1 - INDEXING,2 - SEARCHING,3-DELETING 的3个连续步骤。 我的映射:

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)。

但是当我尝试为相同的文档再次执行相同的操作时,我得不到相同的结果。

当我评论删除操作并执行操作时,我每次都会得到正确的结果,但是当我包含DELETE操作时会出现问题。 我正在使用Java进行所有这些操作。

搜索操作代码:

SearchRequestBuilder searchBuilder = client
                                .prepareSearch()
                                .setIndices("discoveryes-1")
                                .setTypes("discoveryes").setQuery(qb)
                                .setSize(100);

DELETE操作代码:

DeleteResponse rsp = client.prepareDelete().setIndex("discoveryes-1").setType("discoveryes")
                    .setId(witID)
                    .execute()
                    .actionGet();

在上面的代码行中,witID是我要删除的索引ID。

我可以得到一些帮助吗? 感谢

0 个答案:

没有答案