В SOLR, почему поле не сохраняется и не индексируется? - PullRequest
0 голосов
/ 23 мая 2019

В документации Solr об атомарных обновлениях говорится, что поле должно быть не проиндексировано и не сохранено.

https://lucene.apache.org/solr/guide/7_6/updating-parts-of-documents.html#in-place-update-example

Операция атомарного обновления выполняется с использованием этого подхода, только когда обновляемые поля удовлетворяют этим трем условиям:

- это неиндексированные (indexed = "false"), несохраненные (сохраненные = "false"), однозначные (multiValued = "false") числовые поля docValues ​​(docValues ​​= "true");

<field name="price" type="float" indexed="false" stored="false" docValues="true"/>

Каким был бы пример использования этого?

Не означает ли это, что он не подлежит запросу и не возвращается в ответах?

1 Ответ

1 голос
/ 24 мая 2019

В этом контексте следует понимать, что настройка "docValues=true" предназначена в качестве альтернативы "index=true": все еще делая поле «запрашиваемым», но с индексом, ориентированным на столбцы (не инвертированным).

[...] способ внутренней записи значений полей, который более эффективен для некоторых целей, таких как сортировка и огранка, чем традиционное индексирование.

Фактически возможность делать атомарные обновленияв поле sort / facet -edicated-field является примером использования!

Помните, что поле с включенным docValues ​​все еще может быть выбрано, даже если установлено как "stored=false", что позволяет, например,чтобы получить значения, используя параметр fl.Это потому, что значения docValues ​​хранятся «всегда», как зависит от docValuesFormat, который по умолчанию равен «Памяти» (то есть значения doc хранятся в куче).

Поля DocValues ​​также зависят от useDocValuesAsStored, который по умолчанию равен true, что означает, что поле ведет себя так, как если бы оно было определено как stored="true", даже если оно определено как stored="false".

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