Как сделать усилить документ SOLR при индексировании с помощью / solr / update

Для индексации моего веб-сайта у меня есть сценарий Ruby, который, в свою очередь, генерирует сценарий оболочки, который загружает каждый файл в корень моего документа в Solr. В сценарии оболочки есть много строк, которые выглядят так:

  curl -s \
 "http://localhost:8983/solr/update/extract?literal.id=/about/core-team/&commit=false" \
 -F "myfile=@/extra/www/docroot/about/core-team/index.html"

... и оканчиваются на:

curl -s http://localhost:8983/solr/update --data-binary \
'' -H 'Content-type:text/xml; charset=utf-8'

Это загружает все документы из моего корня документов в Solr. Я использую tika и ExtractingRequestHandler для загрузки документов в различных форматах (в основном PDF и HTML) в Solr.

В сценарии, который генерирует этот сценарий оболочки, я хотел бы улучшить определенные документы в зависимости от их идентификатора field (a / k / a url) соответствует определенным регулярным выражениям.

Допустим, это правила повышения (псевдокод):

boost = 2 if url =~ /cool/
boost = 3 if url =~ /verycool/
# otherwise we do not specify a boost

Какой самый простой способ добавить это ускорение времени индекса к моему HTTP-запросу?

Я пробовал:

curl -s \
 "http://localhost:8983/solr/update/extract?literal.id=/verycool/core-team/&commit=false" \
 -F "myfile=@/extra/www/docroot/verycool/core-team/index.html" \
 -F boost=3

и:

curl -s \
 "http://localhost:8983/solr/update/extract?literal.id=/verycool/core-team/&commit=false" \
 -F "myfile=@/extra/www/docroot/verycool/core-team/index.html" \
 -F boost.id=3

Ни один из них не сделал разница в порядке результатов поиска. Я хочу, чтобы улучшенные результаты были первыми в результатах поиска, независимо от того, что искал пользователь (при условии, конечно, что документ содержит их запрос).

Я понимаю, что если я отправлю POST в формате XML, я могу указать значение повышения либо для всего документа, либо для определенного поля. Но если я это сделаю, непонятно, как указать файл в качестве содержимого документа. На самом деле, страница тика предоставляет частичный пример:

curl "http://localhost:8983/solr/update/extract?literal.id=doc5&defaultField=text" \
--data-binary @tutorial.html -H 'Content-type:text/html'

Но опять же не ясно, где и как указывать мое повышение. Я пробовал:

curl \ 
"http://localhost:8983/solr/update/extract?literal.id=mydocid&defaultField=text&boost=3"\
--data-binary @mydoc.html -H 'Content-type:text/html'

и

curl \ 
"http://localhost:8983/solr/update/extract?literal.id=mydocid&defaultField=text&boost.id=3"\
--data-binary @mydoc.html -H 'Content-type:text/html'

Ни один из них не изменил результаты поиска.

Есть ли способ обновить только атрибут повышения документа (а не конкретное поле) без изменения содержимого документа? Если так, то я могу достичь своей цели за два шага: на странице тика приведен частичный пример:

curl "http://localhost:8983/solr/update/extract?literal.id=doc5&defaultField=text" \
--data-binary @tutorial.html -H 'Content-type:text/html'

Но опять же неясно, где и как указать мое повышение. Я пробовал:

curl \ 
"http://localhost:8983/solr/update/extract?literal.id=mydocid&defaultField=text&boost=3"\
--data-binary @mydoc.html -H 'Content-type:text/html'

и

curl \ 
"http://localhost:8983/solr/update/extract?literal.id=mydocid&defaultField=text&boost.id=3"\
--data-binary @mydoc.html -H 'Content-type:text/html'

Ни один из них не изменил результаты поиска.

Есть ли способ обновить только атрибут повышения документа (а не конкретное поле) без изменения содержимого документа? Если да, то я могу достичь своей цели за два шага: на странице тика приведен частичный пример:

curl "http://localhost:8983/solr/update/extract?literal.id=doc5&defaultField=text" \
--data-binary @tutorial.html -H 'Content-type:text/html'

Но опять же неясно, где и как указать мое повышение. Я пробовал:

curl \ 
"http://localhost:8983/solr/update/extract?literal.id=mydocid&defaultField=text&boost=3"\
--data-binary @mydoc.html -H 'Content-type:text/html'

и

curl \ 
"http://localhost:8983/solr/update/extract?literal.id=mydocid&defaultField=text&boost.id=3"\
--data-binary @mydoc.html -H 'Content-type:text/html'

Ни один из них не изменил результаты поиска.

Есть ли способ обновить только атрибут повышения документа (а не конкретное поле) без изменения содержимого документа? Если так, то я могу достичь своей цели за два шага: 1) Загрузите / проиндексируйте документ, как это делал я 2) Укажите ускорение для определенных документов

5
задан javanna 8 December 2011 в 09:51
поделиться