我正在使用Elasticsearch来索引文档。

我的映射是:

"mongodocid": {
  "boost": 1.0,
  "store": "yes",
  "type": "string"
},
"fulltext": {
  "boost": 1.0,
  "index": "analyzed",
  "store": "yes",
  "type": "string",
  "term_vector": "with_positions_offsets"
}

要突出显示完整的完整文本,我正在设置 number_of_framgments 到0。

如果我执行以下类似Lucene的字符串查询:

{
  "highlight": {
    "pre_tags": "<b>",
    "fields": {
      "fulltext": {
        "number_of_fragments": 0
      }
    },
    "post_tags": "</b>"
  },
  "query": {
    "query_string": {
      "query": "fulltext:test"
    }
  },
  "size": 100
}

对于结果中的某些文档,设置了突出显示的完整文本的长度小于完整文本本身。因为我正在设置 number_of_fragments 到0和 pre_tags/post_tags 添加这不应该发生。

现在出现了奇怪的行为:如果我仅通过这样做来搜索失败的元素之一:

{
  "highlight": {
    "pre_tags": "<b>",
    "fields": {
      "fulltext": {
        "number_of_fragments": 0
      }
    },
    "post_tags": "</b>"
  },
  "query": {
    "query_string": {
      "query": "fulltext:test AND mongodocid:4d0a861c2ebef6032c00b1ec"
    }
  },
  "size": 100
}

然后一切都很好。

有任何想法吗?

有帮助吗?

解决方案

听起来像是在0.14.0中固定的问题(请参阅 #479)。截至编写0.14.0尚未发布,您可以尝试Master吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top