Поиск результатов поиска (поиск футболки с возвратом футболки) - PullRequest
0 голосов
/ 07 февраля 2019

Я использую solr 6.3.0 для поиска продукта из документа, моя проблема в том, что когда я ищу "мужскую рубашку", он также ищет "мужскую футболку" в результате.Но я не хочу результата "мужская футболка" для того, что делает shluld id?

Fields details as given below.


<field name="product_name" type="text_general" indexed="true" stored="true" />

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishMinimalStemFilterFactory"/>      
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.StopFilterFactory" words="stopwords.txt" ignoreCase="true"/>
        <filter class="solr.SynonymFilterFactory" expand="true" ignoreCase="true" synonyms="synonyms.txt"/>
        <filter class="solr.LowerCaseFilterFactory"/>
        <filter class="solr.EnglishMinimalStemFilterFactory"/>      
    </analyzer>
</fieldType>


Thanks
abhay

1 Ответ

0 голосов
/ 07 февраля 2019

StandardTokenizer тоже разделяется, поэтому он соответствует 'рубашке'.Для этого конкретного случая вы можете просто заменить StandardTokenizerFactory на ClassicTokenizerFactory.

ClassicTokenizerFactory не разделяется на -, поэтому футболка не будет соответствовать рубашке.Тем не менее, может быть, есть и другие случаи, когда вы пропустите StandardTokenizerFactory.

Посмотрите документы для токенизаторов , немного поэкспериментируйте, а затем решите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...