Solr Повышение точного соответствия Уменьшить результаты

У меня есть два поля, одно - поле для копирования.

  1. <field name="product_name" type="text_wslc" indexed="true" stored="true" required="true" multiValued="false"/>

  2. <field name="dummy_name" type="string_ci" indexed="true" stored="false" required="true" />

Его определение дано ниже.

<fieldType name="text_wslc" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer type="query">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
 <filter class="solr.WordDelimiterFilterFactory"
                                 generateWordParts="1"
                                 generateNumberParts="1"
                                 catenateWords="1"
                                 catenateNumbers="1"
                                 catenateAll="1"
                                 preserveOriginal="1"
                                 />

    <filterclass="solr.LowerCaseFilterFactory"/>
<filter class="solr.SnowballPorterFilterFactory" language="English" />
                    <filter class="solr.PorterStemFilterFactory"/>
                    <filter class="solr.KStemFilterFactory"/>
                    <filter class="solr.EnglishMinimalStemFilterFactory"/>
                            </analyzer>


    <fieldType name="string_ci" class="solr.TextField" sortMissingLast="true" omitNorms="true">
          <analyzer type="query">
        <tokenizer class="solr.KeywordTokenizerFactory"/>
            <filter class="solr.LowerCaseFilterFactory"/>
            <filter class="solr.SnowballPorterFilterFactory" language="English" />
            <filter class="solr.KStemFilterFactory"/>
            <filter class="solr.EnglishMinimalStemFilterFactory"/>
        </analyzer>
    </fieldType>

поданная копия предназначена для того, чтобы в первую очередь получить точные совпадающие результаты. Мой запрос такой

/select?q=("laptop+bag")&df=product_name&defType=edismax&qf=dummy_name^20000+product_name^0.01

это дает мне около 8000 результатов

но для фактических результатов около 20000

 /select?q=(laptop+bag)&df=product_name&defType=edismax&qf=dummy_name^20000+product_name^0.01 

но сначала не будет указан точный результат. Как я могу решить эту проблему? Есть ли проблема с моим запросом? Вот мои поля и определения


person User1234    schedule 11.06.2015    source источник
comment
Пожалуйста, опубликуйте часть схемы с полем и определением copyField   -  person nick_v1    schedule 11.06.2015
comment
@browskie Добавлено поле и определение copyField   -  person User1234    schedule 11.06.2015


Ответы (1)


У вас здесь происходит пара вещей.

Во-первых, поиск «сумка для ноутбука» и сумка для ноутбука - это разные вещи, поэтому вы получаете разные результаты. Первый будет искать точную фразу, а второй найдет любое из ключевых слов. Поэтому логично, что вы видите меньше результатов, если в вашем поисковом запросе заключены кавычки.

Во-вторых, я думаю, что ваше определение поля для поля string_ci нуждается в небольшой настройке, ваши намерения по остановке на данный момент для меня немного загадка. Кроме того, убедитесь, что ваши параметры индексации и параметры запроса для этого поля относительно похожи. Используйте Solr Admin UI Analyzer, чтобы настроить поле и посмотреть, как ваши изменения влияют на ввод / вывод данных.

Наконец, последняя опубликованная вами конфигурация поля не содержит метки поля. В целом сложно сказать, в чем конкретно проблема. Я бы порекомендовал начать с выполнения некоторых запросов и установить для отладки значение true, чтобы увидеть, как оценивается релевантность. Могу поспорить, что ваши параметры индексации и запроса для вашего строкового поля несовместимы. Если это правда, вы можете проверить это в Admin UI Analyzer.

Удачи в этом разобраться.

person nick_v1    schedule 11.06.2015
comment
Отредактировал мой вопрос, просто проверьте? параметры индекса и запроса совпадают - person User1234; 11.06.2015
comment
Они не то же самое, у вас даже нет раздела указателя для обработки полей. Я предлагаю вам выполнить описанные мной шаги диагностики. - person nick_v1; 11.06.2015
comment
У меня есть индексный раздел с такой же конфигурацией - person User1234; 11.06.2015