Поиск Solr с подстановочными знаками

Я хочу найти книгу по названию. Допустим, у меня есть 2 книги под названием

"Please do a wildcard search"
"Please do a deep search"

а затем я выполняю поиск подстановочных знаков solr следующим образом:

{
  "responseHeader":{
    "status":0,
    "QTime":1,
    "params":{
      "q":"BOOK_NAME:\"Please*search\"",
      "indent":"on",
      "wt":"json"}},
  "response":{"numFound":0,"start":0,"docs":[]
  }}

Я ожидал 2 книги из этого поиска, но количество документов было найдено 0

Ссылка Я нашел подстановочный знак ищет:

Я использую Solr 6.


person jj-aa    schedule 27.05.2016    source источник
comment
Он должен показать результаты, если он проиндексирован. проверьте еще раз имя поля и сделайте фиксацию после индексации документов, если вы этого не сделали раньше.   -  person Vinod    schedule 27.05.2016
comment
какой тип поля это ..? Не могли бы вы поделиться типом поля, используемым для заголовка поля, из вашего schema.xml?   -  person Abhijit Bashetti    schedule 27.05.2016
comment
Тип поля в управляемой схеме: ‹имя поля=ИМЯ_КНИГИ тип=текстовое_общее индексированное=истина сохраненное=истина/›   -  person jj-aa    schedule 27.05.2016


Ответы (1)


Ваш запрос кажется запросом фразы, то есть BOOK_NAME:"Please*search", а не BOOK_NAME:Please*search. Это попытается найти точную фразу Пожалуйста*поиск

Кроме того, я не думаю, что запрос будет работать, если вы не проиндексируете BOOK_NAME таким образом, чтобы сохранить все название в качестве токена. Либо попробуйте проиндексировать поле как строку, либо попробуйте использовать ComplexPhraseQueryParser< /а>

ComplexPhraseQParser обеспечивает поддержку подстановочных знаков, операторов OR и т. д. внутри фразовых запросов с использованием ComplexPhraseQueryParser от Lucene. Под прикрытием этот синтаксический анализатор запросов использует группу запросов Span, например, spanNear, spanOr и т. д., и на него распространяются те же ограничения, что и на это семейство или синтаксические анализаторы.

{!complexphrase inOrder=true}BOOK_NAME:"Please*search" or {!complexphrase inOrder=true}BOOK_NAME:"Please * search"

person BunkerMentality    schedule 27.05.2016