2015-05-07 6 views
1

У меня есть объект 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, я не получаю никаких результатов.

Есть ли что-то, что я должен изменить, чтобы иметь возможность разбивать или параметризовать поле в список, чтобы я мог выполнять мой поиск?

ответ

1

Одно из возможных решений заключается в том, чтобы сделать поле в solr многозначным.

+0

Будет ли это список, если он разделен запятой? Я думал, что multiValued означает, что поле может быть объявлено несколько раз. – Igor

+0

Да, это нужно обрабатывать во время индекса, чтобы данные, хранящиеся в индексе, находились в многозначном формате. Вот один из способов обращения с ним во время загрузки данных, если вы не можете изменить формат данных в источнике. http://stackoverflow.com/questions/16278593/adding-a-multivalued-commas-separated-string-to-solr-isnt-working –

+0

Да, это сработало - ключ состоит в том, чтобы убедиться, что поля отображаются несколькими раз (а не только разделенные запятой). – Igor

Смежные вопросы