Вопрос по facet, solr – SOLR медленный при первом запросе фасета, но довольно быстрый при последующих запросах

1

Я пытаюсь выяснить, почему мой экземпляр SOLR (4.1) очень медленный для фасетных запросов. Индекс содержит около 200 миллионов документов, а сервер имеет 64 ГБ ОЗУ.

Мой запрос выглядит так:

q=CampaignId:1462%0ASourceDateUtc:[2014-01-01T00:00:00.000Z TO 2014-01-30T00:00:00.000Z]
&wt=xml&indent=true&rows=0
&facet=true&facet.field=UserName&facet.mincount=10&facet.method=fc

Для первого попадания потребуется около 6 минут, но когда результат возвращается, я снова ищу с тем же запросом или немного изменяю диапазон в SourceDateUtc, он работает довольно быстро.

Вот мой solrconfig.xml (раздел запроса)


  

   
    

  
    

    
    

    
    true

    
    100

    
    


    
    

    
    false

    
    true


Я также попытался включить filterCache, но это неТ помочь.

Благодарю.

Еще одна вещь, которую вы можете сделать, это может ускорить ответ и воспользоваться функцией filterCache, чтобы использовать запросы фильтра для полей, которые нене нужны функции полнотекстового поиска.q=*:*&fq=CampaignId:1462&fq=SourceDateUtc:[2014-01-01T00:00:00.000Z TO 2014-01-30T00:00:00.000Z]&facet=true... d whelan

Ваш Ответ

1   ответ
4

проблема с разогревом. Кэш прогрева полей (facet.method = fc) очень важен для эффективной работы solr. Если у вас нетДля настройки запросов на разогрев, пожалуйста, рассмотрите возможность добавления фасетного запроса, как в вашем примере, в разделы newsearcher и firstsearcher в solrconfig.xml.

http://wiki.apache.org/solr/SolrConfigXml#A.22Query.22_Related_Event_Listeners

<listener event="firstSearcher" class="solr.QuerySenderListener">
      <arr name="queries">
        <lst> <str name="q">*:*</str>
              <str name="start">0</str>
              <str name="rows">10</str>
              <str name="facet">true</str>
              <str name="facet.field">UserName</str>
              <str name="facet.mincount">10</str>
              <str name="facet.method">fc</str>
        </lst>
      </arr>
</listener>

Вы также можете отключить useColdSearher

<usecoldsearcher>true</usecoldsearcher>

Далее читайте:

Что делает хороший запрос на автоподогрев в Solr и как они работают?

http://wiki.apache.org/solr/SolrFacetingOverview

Спасибо, это работает. Но у меня есть небольшое беспокойство: из-за запроса *: *, когда индекс перезагружается, он читает все из индекса в память, что не идеально, потому что мои данные слишком велики. Van Thoai Nguyen
да, хотя бы в solr 4.x и 5.x leoh
Рад помочь. Это также зависит от того, как вы настраиваете параметры кэша ... но обычно это выигрываетТратьте столько памяти на огранку *: *. Раньше у меня была коллекция около 100 ГБ, но только кучи памяти 17 ГБ с огранкой *: * leoh
Здравствуйте, я могу использовать <str name = "facet.field ">UserName </ Ул> линия в кратном времени? Kalpesh Boghara

Похожие вопросы