elasticsearch / lucene highlight

Я использую ElasticSearch для индексации документов.

Мое сопоставление:

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

To выделить весь полный текст Я устанавливаю 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
}

тогда все работает нормально.

Есть идеи?

6
задан Saeed Zhiany 1 December 2016 в 08:48
поделиться