Эффективный способ управления конфигурацией клиента Solr PHP в REST Service - PullRequest
0 голосов
/ 30 октября 2019

У меня есть несколько доступных для поиска данных в Solr 6.6.6. Мой REST-клиент - PHP. Чтобы выполнить поиск в Solr, мне нужно выполнить следующий (пример) запрос из PHP

http://10.11.112.25:8983/solr/collection1/select?bf=recip(ms(NOW,date),3.16e-11,1,1)%5E2.2&boost=product(title1_depth,product(sum(arank,div(div(sum(cld2_score,cle_score),2),100),recip(pf_score,1,1,1)),sum(dup_stat,1)))&bq=group:ur_top_web%5E1.37&defType=edismax&fq=group:web%20OR%20group:ur_news*%20OR%20group:ur_blog%20OR%20group:ur_top_web*%20OR%20group:urpoetr*%20-pf_score:[0.7%20TO%201]%20OR%20NOT%20dup_stat1:[*%20TO%20*]&indent=on&mm=3&pf2=title%20content&pf3=title%20content&pf=title%20content&ps2=1&ps3=1&ps=10&q=%D9%BE%D8%A7%DA%A9%D8%B3%D8%AA%D8%A7%D9%86+%DA%A9%D8%A7+%D9%85%D8%B3%D8%AA%D9%82%D8%A8%D9%84&qf=title%20content&tie=0.4&wt=json&stopwords=true&lowercaseOperators=true&start=0&rows=10&hl=true&hl.snippets=5&hl.fl=title+content_t+content+id+url+summary&hl.method=original&hl.fragsize=100&f.summary.hl.fragsize=0&f.title.hl.fragsize=0&hl.requireFieldMatch=false&hl.alternateField=title+content_t+content+id+url+summary&hl.simple.post=</b>&hl.simple.pre=<b>&fl=title,content,url

. Там есть способ настроить все это в конфигурациях Solr (например, XML и т. Д.), И я просто вызываю небольшойразмер запроса из PHP. Это также поможет контролировать параметры конфигурации для нескольких клиентов в одной точке.

1 Ответ

1 голос
/ 30 октября 2019

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

<requestHandler name="/custom" class="solr.SearchHandler">
  <lst name="appends">
    <str name="bf">recip(ms(NOW,date),3.16e-11,1,1)^2.2</str>
    ...
  </lst>
</requestHandler>

Затем вы запросите /custom вместо /select.

...