elasticsearch/lucene亮点

loc*_*jay 6 lucene elasticsearch

我正在使用ElasticSearch索引文档.

我的映射是:

"mongodocid": {
  "boost": 1.0,
  "store": "yes",
  "type": "string"
},
"fulltext": {
  "boost": 1.0,
  "index": "analyzed",
  "store": "yes",
  "type": "string",
  "term_vector": "with_positions_offsets"
}
Run Code Online (Sandbox Code Playgroud)

要突出显示完整的全文,我将其设置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
}
Run Code Online (Sandbox Code Playgroud)

对于结果集中的某些文档,突出显示的全文的长度小于全文本身.由于我设置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
}
Run Code Online (Sandbox Code Playgroud)

一切正常.

有任何想法吗?

小智 6

听起来像是在0.14.0中已修复的问题(见#479).截至撰写时,0.14.0还没有发布,你能尝试一下吗?