solr подчертаване в стари и нови версии

Мигрирам уеб сайт от стара версия на solr (1.4.1) към текущата версия (5.2.1) на различна машина и забелязвам някои разлики.

В старата версия можех да получа подчертаване с url като този:

http://localhost:8983/solr/select?indent=on&q=text:software/&start=0&rows=10&fl=id,score,title&wt=json&hl=on&hl.fragsize=200

В новата версия едно нещо, което е различно е, че трябва да посоча колекция. Друга разлика е, че новата версия дава грешка, ако поставя text: пред стойността на q.

И така, като взема предвид тези разлики, в крайна сметка получавам URL като този:

http://localhost:8983/solr/default/select?indent=on&q=software/&start=0&rows=10&fl=id,score,title&wt=json&hl=on&hl.snippets=1&hl.fl=%2a&hl.fragsize=200

Този втори URL адрес не ми дава маркиране на фрагменти/откъси. Тоест, където старият URL би дал нещо подобно:

"highlighting":{
  "document0_id":{"text":["The <em>software</em> is awesome"]}}

Новият URL дава нещо подобно:

"highlighting":{
  "document0_id":{}}

Какво трябва да направя, за да върна маркирани фрагменти в solr 5.2.1?

[редактирано]

Освен това се опитах да избера един документ по неговия идентификатор и на двете машини. На старата машина url като

http://localhost:8983/solr/select?wt=json&indent=true&q=id:thedocumentid

връща някакъв JSON, който включва поле text, съдържащо пълния текст за търсене на оригиналния HTML документ. На новата машина подобен url (но такъв, който включва колекцията):

http://localhost:8983/solr/default/select?wt=json&indent=true&q=id:thedocumentid

...връща подобен JSON, който не включва полето text.

Отбелязвам, че търсенето връща правилните резултати; проблемът е, че на новата машина резултатите не включват подчертаващите фрагменти. Така че изглежда може би проблемът е, че трябва да уточня, че тези документи имат текстово поле, когато ги индексирам; как да направя това?


person Dan Tenenbaum    schedule 28.07.2015    source източник


Отговори (2)


Един колега (неизкушен от наградата) забеляза, че моето поле text има stored="false" в моя schema.xml и предложи да го промените на true. Това свърши работа.

person Dan Tenenbaum    schedule 06.08.2015

  1. В първата заявка търсите конкретно в текстовото поле, а във втората не.

  2. И във втория споменахте hl.fl, което означава "Определя списък с полета за маркиране. Приема разделен със запетая или интервал списък с полета, за които Solr трябва да генерира маркирани фрагменти. Ако остане празно, подчертава defaultSearchField"

Опитайте отново, като направите промените...

http://localhost:8983/solr/default/select?q=text:software&start=0&rows=10&fl=id,score,title&wt=json&hl=on&hl.fragsize=200

person Abhijit Bashetti    schedule 29.07.2015
comment
Това връща: {"responseHeader":{"status":400,"QTime":2,"params":{"hl.fragsize":"200","fl":"id,score,title","start":"0","q":"text:software","wt":"json","hl":"on","rows":"10"}},"error":{"msg":"undefined field text","code":400}} - person Dan Tenenbaum; 29.07.2015
comment
бихте ли споделили schema.xml, използван за вашата колекция? - person Abhijit Bashetti; 30.07.2015
comment
Намира се на gist.github.com/dtenenba/367ccf577651d953150a . Имайте предвид, че това е моят /etc/solr/conf/schema.xml; Колекцията ми изглежда няма собствен schema.xml. Създадох го с помощта на bin/solr create_core -c default. - person Dan Tenenbaum; 30.07.2015