Улучшения в Autosuggest Solr - PullRequest
0 голосов
/ 07 июня 2018

Я новичок в Solr, и мне поручили улучшить автоподстановку
для нашего продукта. Мы используем Solr 6.6.0 . Текущее требование:когда пользователь ищет рубашки, в результатах должны отображаться мужские рубашки, женские рубашки как autosuggest. На данный момент отображаются только рубашки. Пожалуйста, дайте мне знать в случае каких-либо потенциальных клиентов.Ниже приведена конфигурация:

<searchComponent name="suggest" class="solr.SuggestComponent">
    <lst name="suggester">
        <str name="name">flf</str>
        <str name="lookupImpl">AnalyzingLookupFactory</str>
        <str name="dictionaryImpl">DocumentDictionaryFactory</str>
        <str name="field">autosuggest</str>
        <str name="weightField">vm_score</str>
        <str name="suggestAnalyzerFieldType">textSuggest</str>
        <str name="exactMatchFirst">true</str>
        <str name="buildOnStartup">false</str>
        <str name="storeDir">autosuggest_fuzzy</str>
    </lst>
</searchComponent>
<requestHandler name="/suggest" class="solr.SearchHandler" startup="lazy">
    <lst name="defaults">
        <str name="suggest">true</str>
        <str name="suggest.count">5</str>
        <str name="suggest.dictionary">flf</str>
    </lst>
    <arr name="components">
        <str>suggest</str>
    </arr>
</requestHandler>

textSuggest создается из следующих полей в файле schema.xml:

<copyField source="product_name" dest="autosuggest" />
<copyField source="product_description" dest="autosuggest" />
<copyField source="brand_name" dest="autosuggest" />
<copyField source="tags" dest="autosuggest" />
<copyField source="gender" dest="autosuggest" />
<copyField source="master_category_name" dest="autosuggest" />
<copyField source="sub_category_name" dest="autosuggest" />
<copyField source="product_id" dest="autosuggest" />
<copyField source="id" dest="autosuggest" />

<field name="autosuggest" type="textSuggest" indexed="true" stored="true" 
required="false" multiValued="true" />

Поле textSuggest имеет следующую конфигурацию:

<fieldType class="solr.TextField" name="textSuggest" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.RemoveDuplicatesTokenFilterFactory"/>
        <filter class="solr.EdgeNGramFilterFactory" maxGramSize="100"/>
        <filter class="solr.BeiderMorseFilterFactory" nameType="GENERIC" ruleType="APPROX" concat="true" languageSet="auto" />
    </analyzer>
    <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory" />
        <filter class="solr.StandardFilterFactory"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.BeiderMorseFilterFactory" nameType="GENERIC" ruleType="APPROX" concat="true" languageSet="auto" />
    </analyzer>
</fieldType>
...