Solr: как набрать вопросы поиска? - PullRequest
2 голосов
/ 20 мая 2019

Я новичок в solr и пытаюсь создать систему ответов на вопросы. Я проиндексировал некоторые страницы Википедии, например, Никола Тесла. https://en.wikipedia.org/wiki/Nikola_Tesla

У меня такой вопрос: можно и как напечатать запрос как вопрос в Solr?

Я разделил страницу Википедии на "Содержание" (соответствует SectionTitle), так что ... для запроса pageTitle:Nikola Tesla мои результаты:

"response":{"numFound":23,"start":0,"docs":[
{
        "sectionTitle":"First Paragraph",
        "pageTitle":"Nikola Tesla",
        "text":["Born and raised in the Austrian Empire, Tesla received an advanced education in engineering and physics in the 1870s and gained practical experience in the early 1880s working in telephony and at Continental Edison in the new electric power industry.]},
{
        "sectionTitle":"Early years",
        "pageTitle":"Nikola Tesla",
        "text":["Nikola Tesla was born an ethnic Serb in the village Smiljan, Lika county, in the Austrian Empire (present day Croatia), on 10 July [O.S. 28 June] 1856. etc..]}]
  }}

Мой schema следующий:

  <field name="id" type="string" indexed="true" required="true" stored="true"/>
  <field name="pageTitle" type="text_en" indexed="true" stored="true"/>
  <field name="sectionTitle" type="text_en" indexed="true" stored="true"/>
  <field name="title" type="text_en" indexed="true" stored="true"/>
  <field name="text" type="text_general" indexed="true" stored="true"/>

Можно ли ввести запрос в виде вопроса? А как показать результаты похожие на вопрос? Например, глядя выше ...

Как мне набрать запрос When Nikola Tesla born? и получить абзац :

"sectionTitle":"Early years",
"pageTitle":"Nikola Tesla",
"text":["Nikola Tesla was born an ethnic Serb in the village Smiljan, Lika county, in the Austrian Empire (present day Croatia), on 10 July [O.S. 28 June] 1856."]

Или запрос Where Nikola Tesla born? / Where Nikola Tesla raised? и получите:

"Тесла родился и вырос в Австрийской империи ..."?

Заранее спасибо.

1 Ответ

0 голосов
/ 24 мая 2019

Близкий поиск ищет термины, которые находятся на определенном расстоянии друг от друга.

Чтобы выполнить поиск близости, добавьте символ тильды ~ и числовой значение до конца поисковой фразы. Например, чтобы найти «apache» и «jakarta» в пределах 10 слов друг от друга в документе, воспользуйтесь поиском:

"jakarta apache"~10

Указанное здесь расстояние - количество необходимых перемещений соответствовать указанной фразе. В приведенном выше примере, если «apache» и «Джакарта» находились на расстоянии 10 мест друг от друга в поле, но появился «апач» до "Джакарты" потребуется более 10 терминов переместите термины вместе и расположите «apache» справа от "Джакарта" с пробелом между ними.

Вы также можете попробовать поиск близости в вашем случае, как показано ниже.

text:"Nikola Tesla born?"~10

text:"Austrian Empire engineering"~10

text:"Tesla born?"~10

Пожалуйста, обратитесь к изображениям из инструмента администрирования solr.

Для text:"Nikola Tesla born?"~10

Solr analysis 1

Для text:"Austrian Empire engineering"~10

Solr analysis 2

Для text:"Tesla born?"~10 запрос идет как "http://localhost:8983/solr/TestCore/select?q=text:"Tesla born?"~10"

Solr analysis 3

...