Solr поиск нескольких слов в запросе

У меня есть следующие поля в схеме solr

make model city province 

Я создал поиск по копированию и скопировал эти 4 поля в нем

теперь я хочу, если пользователь ищет

 'audi a4' where audi is a make and a4 is model, 

Я должен получить результат, где в строке make есть audi, а модель – a4.

В случае, если я ищу

 'asd audi asd' 

то я должен получить результат только audi.

В случае, если я ищу

 'asd aasd audi asd a4', 

то он должен отображать результаты audi a4.

Пожалуйста, помогите мне добиться этого.

См. Схему для поля копирования.

  <copyField source="Make" dest="search"/> <copyField source="Model" dest="search"/> <copyField source="City" dest="search"/> 

Поле создано следующим образом

 <field name="search" type="string" indexed="true" stored="false" multiValued="true"/> 

Вы можете попробовать этот fieldType для своего поля.

 <fieldType name="text" class="solr.TextField"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> </analyzer> </fieldType> 

или вы можете попробовать это поле. Введите поле для поиска.

 <fieldType name="text_ws" class="solr.TextField" positionIncrementGap="100"> <analyzer type="index"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="1" catenateWords="0" catenateNumbers="0" preserveOriginal="1" catenateAll="0" splitOnCaseChange="0"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> <analyzer type="query"> <tokenizer class="solr.WhitespaceTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory"/> <filter class="solr.RemoveDuplicatesTokenFilterFactory"/> </analyzer> </fieldType> 

Итак, ваше поле сейчас

 <field name="search" type="text_ws" indexed="true" stored="false" multiValued="true"/>