эластичный поиск / люценовая подсветка - PullRequest
6 голосов
/ 22 декабря 2010

Я использую 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
}

тогда все отлично работает.

Есть идеи?

1 Ответ

6 голосов
/ 22 декабря 2010

Похоже, проблема была исправлена ​​в 0.14.0 (см. # 479 ).На момент написания статьи 0.14.0 еще не выпущен, вы можете попробовать мастер?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...