Я использую Solr 6.0.0
Я пытаюсь отфильтровать нежелательные предложения от Solr Suggester.В моей базе данных Solr у меня есть все мои продукты
Все мои продукты имеют логическое поле "ShowOnSite".Продукты, готовые к продаже, имеют значение true.Для продуктов, которые еще не готовы, для него установлено значение false.
Когда я пытаюсь отфильтровать предложенные результаты от подсказчика с помощью этого логического поля, я всегда получаю 0 результатов, хотя у меня есть много продуктов, готовых для показа.
Мои продукты выглядят примерно так:
<field name="id" type="string" indexed="true" stored="true" required="true"/>
<field name="Name" type="string" indexed="true" stored="true"/>
<field name="ShowOnSite" type="boolean" indexed="true" stored="true" />
<field name="text_autocomplete" type="textSuggest" indexed="true" stored="true"/>
textSuggest fieldType имеет следующую конфигурацию:
<fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.StandardTokenizerFactory"/>
<filter class="solr.StandardFilterFactory"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
Мой советник выглядит так
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
<lst name="defaults">
<str name="suggest">true</str>
<str name="suggest.count">20</str>
<str name="wt">json</str>
</lst>
<arr name="components">
<str>suggest</str>
</arr>
</requestHandler>
<searchComponent name="suggest" class="solr.SuggestComponent">
<lst name="suggester">
<str name="name">default</str>
<str name="lookupImpl">AnalyzingInfixLookupFactory</str>
<str name="highlight">true</str>
<str name="dictionaryImpl">DocumentDictionaryFactory</str>
<str name="field">text_autocomplete</str>
<str name="weightField">InStock</str>
<str name="contextField">ShowOnSite</str>
<str name="suggestAnalyzerFieldType">textSuggest</str>
<str name="buildOnStartup">true</str>
</lst>
</searchComponent>
Мой запрос выглядит следующим образом:
/suggest?suggest.q={querystring}&suggest.cfq=true
Ожидается Я получаю только продукты с "ShowOnSite" == true
Факт. Я получаю 0 proucts от предложителя
Я также пробовал другие конфигурации.Используя значение true, я получаю все продукты:
/suggest?suggest.q={querystring}&suggest.cfq=-true
Я также попытался добавить имя поля в cfq.Это дает 0 продуктов:
/suggest?suggest.q={querystring}&suggest.cfq=ShowOnSite:true
EDIT1 Я также попытался использовать 0 или 1 для false и true соответственно.Они тоже не работают