У меня есть объект Foo
с микросхемой именами List<String>
собственности:Поиск разделенный запятыми список в Solr с помощью Spring бутсу
class Foo {
List<String> names = []
}
В моей schema.xml
для Solr, я это сконфигурировано как строка:
<field name="names" type="string" indexed="true" stored="true"/>
Я затем пытается выполнить поиск по нему, где, если любое из значений соответствует ни одному из них в списке, я ожидал удар:
new Criteria('names').in(filter.names)
Однако, поскольку значения хранятся в виде строки, разделенной запятой, в Solr, я не получаю никаких результатов.
Есть ли что-то, что я должен изменить, чтобы иметь возможность разбивать или параметризовать поле в список, чтобы я мог выполнять мой поиск?
Будет ли это список, если он разделен запятой? Я думал, что multiValued означает, что поле может быть объявлено несколько раз. – Igor
Да, это нужно обрабатывать во время индекса, чтобы данные, хранящиеся в индексе, находились в многозначном формате. Вот один из способов обращения с ним во время загрузки данных, если вы не можете изменить формат данных в источнике. http://stackoverflow.com/questions/16278593/adding-a-multivalued-commas-separated-string-to-solr-isnt-working –
Да, это сработало - ключ состоит в том, чтобы убедиться, что поля отображаются несколькими раз (а не только разделенные запятой). – Igor