Моя конфигурация выглядит следующим образом:
`
<lst name="defaults">
<str name="defType">dismax</str>
<str name="q.alt">*:*</str>
<str name="qf">
city^10.0 name^10.0 city_l10n_value^10.0 name_l10n_value^10.0 state^5.0 country^2.0
</str>
<str name="sort">hotel_count desc,query({!v="type:(airport OR train_station)"}) desc ,score desc</str>
<str name="tie">0.1</str>
<str name="echoParams">explicit</str>
<int name="rows">100</int>
</lst>
`
Схема, которую я использую:
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LengthFilterFactory" min="2" max="100"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2" />
</analyzer>
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.LengthFilterFactory" min="2" max="100"/>
<filter class="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="German2" />
</analyzer>
</fieldType>
<field name="type" type="text_general" indexed="true" stored="true"/>
......
Теперь после индексации результаты поиска выглядят следующим образом:
<result name="response" numFound="114" start="0">
<doc><str name="type">airport</str></doc>
<doc><str name="type">train_station</str></doc>
<doc><str name="type">tourist_feature</str></doc>
<doc><str name="type">company_location</str></doc>
<doc><str name="type">company_location</str></doc>
<doc><str name="type">company_location</str></doc>
<doc><str name="type">company_location</str></doc>
<doc><str name="type">company_location</str></doc>
К сожалению, если я выполню запрос,
http://localhost:8983/solr/maincore/select/?fq=type:company_location,
ничего не возвращает.
http://localhost:8983/solr/maincore/select/?fq=type:tourist_feature
возвращает некоторое совпадение.
Что это, что я делаю не так?