Я только начал использовать Solr, и я не уверен, что мне не хватает.У меня 2 поля ул. Адреса и города.streetAddresses - текстовое поле, а city - строковое поле.Это уже было настроено, прежде чем я начал смотреть на Solr.Схема.xml для полей выглядит следующим образом:
<types>
<fieldType class="org.apache.solr.schema.TextField" name="TextField">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
<fieldType class="org.apache.solr.schema.StrField" name="StrField"/>
</types>
<fields>
<field indexed="true" multiValued="true" name="streetAddresses" stored="true" type="TextField"/>
<field docValues="true" indexed="true" multiValued="true" name="cities" stored="true" type="StrField"/>
</fields>
Проблема заключается в том, что при запросе нескольких полей анализируемая строка для streetAddresses содержит только первую часть строки, а остальная часть игнорируется.Например, если я выполняю поиск по StreetAddresses для 111 Main St и городов для Бостона, запрос выглядит как
q=streetAddresses%3A111+Main+st+OR+cities%3ABoston&wt=json&indent=true&debugQuery=true&defType=edismax&qf=streetAddresses%2Ccities
И отладка выглядит как
"rawquerystring": "streetAddresses:111 Main st OR cities:Boston",
"querystring": "streetAddresses:111 Main st OR cities:Boston",
"parsedquery": "(+(streetAddresses:111 cities:Boston))/no_coord",
"parsedquery_toString": "+(streetAddresses:111 cities:Boston)",
"explain": {},
"QParser": "ExtendedDismaxQParser",
"altquerystring": null,
"boost_queries": null
Я получаю результат на основе111 для улицы Адреса, но остальная часть строки (Главная улица) игнорируется.Я пытался найти проблему, и некоторые упоминали о стоп-словах или ограничении слов, но я не использую ничего из этого.Есть идеи?