Обработчики запросов Solr и парсеры запросов - PullRequest
1 голос
/ 11 марта 2011

Я новичок в Solr. Пожалуйста, помогите мне со следующими вопросами:

  1. В чем разница между обработчиком запросов и анализатором запросов?
    Я думаю, что когда запрос отправляется через URL в solr, сначала запрос анализируется с использованием анализатора запросов. Затем обработчик запроса принимает проанализированный запрос, выполняет поиск и представляет ответ в соответствии с параметрами обработчика запроса. Это правильно?

  2. Что такое анализатор запросов по умолчанию и обработчик запросов по умолчанию в Solr?

  3. Параметр deftype используется для указания синтаксического анализатора и qt для обработчиков запросов, верно? Я написал этот запрос
    select?q=features:power%20features:latency&deftype=dismax который работает, но select?q=features:power%20features:latency&qt=dismax нет.

Вот мой requestHandler

<requestHandler name="dismax" class="solr.SearchHandler">
 <lst name="defaults">
  <str name="defType">dismax< /str>
  <str name="echoParams">explicit< /str>
  <float name="tie">0.01< /float>
  <str name="qf">text^0.5 features^1.0 name^1.2 sku^1.5 id^10.0 manu^1.1 cat^1.4< /str>
  <str name="pf">text^0.2 features^1.1 name^1.5 manu^1.4 manu_exact^1.9< /str>
  <str name="bf">popularity^0.5 recip(price,1,1000,1000)^0.3< /str>
  <str name="fl">id,name,price,score< /str>
  <str name="mm">2<-1 5<-2 6<90%< /str>
  <int name="ps">100< /int>
  <str name="q.alt">*:*< /str>
 <!--  example highlighter config, enable per-query with hl=true
  -- >
  < str name="hl.fl">text features name</str>
 <!--  for this field, we want no fragmenting, just highlighting
  -- >
  < str name="f.name.hl.fragsize">0< /str>
 <!--  instructs Solr to return the field itself if no query terms are
          found
  -- >
  <str name="f.name.hl.alternateField">name< /str>
  <str name="f.text.hl.fragmenter">regex< /str>
 <!--  defined below
  -->
  < /lst>
</requestHandler>

1 Ответ

3 голосов
/ 12 марта 2011

По умолчанию используется обработчик запроса с параметром default = "true" в SolrConfig.xml (SearchHandler, если вы его не изменили).

Обработчик запросов обрабатывает запросы, поэтому он является отправной точкой для каждого запроса, что означает, что обработчик запросов использует / первый анализатор запросов / Calls (либо тот, который указан в URL, либо по умолчанию).

Вы хотите получить:
1. Документы с «задержкой мощности» в качестве фразы?
2. Или документы с обоими терминами где-нибудь в документе?
3. Или документы с любым из этих терминов?

Попробуй так:
1. выберите? Q = функции: "задержка питания" & qt = dismax
2. выберите? Q = характеристики: мощность + функции: задержка & qt = dismax & mm = 2
3. выберите? Q = характеристики: мощность + функции: задержка & qt = dismax & mm = 1

Подробнее о DisMaxQParserPlugin .

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