SOLR проблема - PullRequest
       30

SOLR проблема

0 голосов
/ 25 апреля 2018

У нас есть кластер SOLR 5.2.1, и мы проиндексировали около 70 миллионов документов.Одна проблема, с которой я сталкиваюсь в настоящее время, заключается в том, что когда мы получаем фасет в одном поле с одним условием фильтра, я не вижу в ответе определенного фасетного значения. Например, следующий запрос запускается по SOLR: http://HOST:/solr/shard3_replica1/select?q=:&facet.mincount=1&rows=0&facet=true&facet.field=cId&fq=ctId:123456

Таким образом, в ответе возвращаются фасеты, но одно значение (например, cId: 9999999) не возвращается.Но если мы применим фильтр к тому же значению вместе с исходным фильтром, я смогу увидеть данные в ответ. Например: http://HOST:/solr/shard3_replica1/select?q=:&facet.mincount=1&rows=0&facet=true&facet.field=cId&fq=ctId:123456&fq=cgId:9999999

Я очень хорошо вижу, что возвращаются значения фасетов.

Ниже приведено соответствующее определение схемы для полей:

<field name="cId" type="text_general" indexed="true" stored="true"/>
<field name="ctId" type="text_general" indexed="true" stored="true" multiValued="true"/>

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
            <analyzer type="index">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
            </analyzer>
            <analyzer type="query">
                <tokenizer class="solr.StandardTokenizerFactory"/>
                <filter class="solr.LowerCaseFilterFactory"/>
            </analyzer>
        </fieldType>

Я создал образец коллекции с такой же конфигурацией в моей локальной настройке Solr и принял те же данные. В этой коллекции оба вышеуказанных запроса работают нормально.

Любая помощь будет очень признательна.Заранее спасибо.

1 Ответ

0 голосов
/ 25 апреля 2018

Поскольку вы не задаете значение для facet.limit, Solr по умолчанию возвращает только 100 самых популярных значений для поля. Я бы также рекомендовал использовать нетексированное поле для огранки, но если оно работает для вашего варианта использования - обязательно. Но имейте в виду, что это создаст отдельные токены для 00-00 и нескольких других форматов.

facet.limit

Этот параметр указывает максимальное количество счетчиков ограничений (по сути, количество фасетов для возвращаемого поля), которое должно быть возвращено для полей фасетов. Отрицательное значение означает, что Solr будет возвращать неограниченное количество отсчетов ограничений.

Значением по умолчанию является 100.

...