У меня есть простая проблема озвучивания, связанная с выделением поля с помощьюasticsearch версии 0.18.6.То, что я хочу сделать, это выделить целое поле и вернуть содержимое (либо выделенное, либо, если совпадений нет, но без выделения - но всегда полное содержимое поля!)
On asticsearch.org Я нашел это:
Если значение number_of_fragments установлено в 0, то никакие фрагменты не создаются , вместо этого возвращается все содержимое поля и, конечно, это выделено.
Итак, я попытался достичь желаемого:
final SearchResponse response = client.prepareSearch(indexName)
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setTypes(FEED_TYPE)
.setQuery(queryString(query).field("title").field("description").field("keywords"))
.addHighlightedField("title", 0, 0)
.addHighlightedField("description", 0, 0)
.addFields("url", "iconUrl", "keywords")
.setSize(size)
.setFrom(start)
.execute().actionGet();
Подпись этого метода:
public SearchRequestBuilder addHighlightedField(java.lang.String name, int fragmentSize, int numberOfFragments)
Я что-то здесь пропускаю?Или я неправильно понял, что он возвращает полный контент, только если есть хотя бы один термин, который нужно выделить?
Спасибо за все ответы.