ElasticSearch - 使用5或1个分片搜索相同索引的不同结果

时间:2015-03-06 13:01:51

标签: elasticsearch

我正在使用ElasticSearch(1.4.4)运行单个节点,并且我有两个索引相同文档的索引。唯一的区别在于分片数量:

  • 索引1:5分片,0个副本
  • 索引2:1个碎片,0个副本

当我使用Java API运行100个不同查询的测试时,每个索引都会得到不同的结果。我已经尝试过对它们使用DFS Query Then Fetch,但我仍然得到不同的结果。

我想知道发生了什么。我不确定elasticsearch如何执行查询以获得不同的结果。

更新

这些是我的索引的设置和映射:

"settings": {
      "number_of_shards" :   1, // or 5 for the other index
      "number_of_replicas" : 0,
      "analysis": {
               "filter": {
                  "worddelimiter": {
                     "type": "word_delimiter"
                  }
               },
               "analyzer": {
                  "custom_analyzer": {
                     "type": "custom",
                     "filter": [
                        "lowercase",
                        "asciifolding",
                        "worddelimiter"
                     ],
                     "tokenizer": "standard"
                  }
               }
            }
  }

"mappings": {
     "faq": {
        "properties": {
           "answer": {
              "type": "string",
              "analyzer": "custom_analyzer"
           },
           "answer_id": {
              "type": "long"
           },
           "path": {
              "type": "string",
              "analyzer": "custom_analyzer"
           },
           "question": {
              "type": "string",
              "analyzer": "custom_analyzer"
           }
        }
     }
  }

这是查询:

client.prepareSearch(index)
                    .setTypes(type)
                    .setSearchType(SearchType.DFS_QUERY_THEN_FETCH) 
                    .setQuery(QueryBuilders.multiMatchQuery(inputText, "questions","answer^2","paths")
                    .setSize(BUFFER_SIZE)
                    .setFrom(i * BUFFER_SIZE)
                    .execute()
                    .actionGet();

0 个答案:

没有答案