определить, какое значение вызвало попадание в многозначный тип поля SOLR - PullRequest
1 голос
/ 25 января 2010

Если у меня есть многозначное поле типа текста, и я помещаю в него значения [кошка, собака, зеленый, синий]. Есть ли способ сказать, когда я выполняю запрос к этому полю для собаки, что он был в позиции 1-го элемента для этого поля с несколькими значениями?

Предположение: клиент не имеет предварительных сведений о типе поля запрашиваемого поля. (т. е. Solr должен предоставить ответ, а клиент не может опубликовать обработанный документ возврата, чтобы выяснить это, поскольку он не знает, как SOLR сопоставил запрос с результатом).

Раскрытие информации: я разместил в списке пользователей solr и не получаю никакой поддержки, поэтому я публикую здесь и сейчас.

Ответы [ 3 ]

3 голосов
/ 26 января 2010

В настоящее время в Solr нет встроенной функциональности, которая сообщает вам положение значения в поле multiValue.

1 голос
/ 07 июня 2010

Надеюсь, я правильно понимаю ваш вопрос.

Если вы хотите получить индекс или значение поля, то есть уродливый обходной путь:

Вы можете добавить индекс непосредственно в значение, например, магазин «1; машина», «2; тест» и т. д. Тогда используйте выделение. При чтении возвращаемых полей просто пропустите текст перед точкой с запятой.

Но если вы хотите запросить только один тип:

Вы можете избежать многозначного подхода и просто сохранить его как item_i и выполнить запрос через item_1. Чтобы выполнить запрос ко всем элементам независимо от типа, вам нужно использовать директиву copyField в schema.xml

0 голосов
/ 28 января 2010

Lucene API допускает это, но я не уверен, что Solr делает это из коробки. В Lucene вы можете использовать метод IndexReader.termPositions (Term term).

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