Как сделать запрос в строковых полях в Solr - PullRequest
0 голосов
/ 13 марта 2019

У меня есть эта проблема.Мой запрос выглядит так:

http://localhost:8983/solr/archiveCore/select?q=strSO:EV11777-01 AND DocType:LLP AND PackName:06 Delivery Documents - MiniPack

Тип полей (strSO, PackName, DocType): string .Тип полей был text_general вначале.Но я должен сделать их строка .До изменения типов полей запрос работал правильно.Но когда я делаю это, string ответ на запрос ничего не дает.Что здесь не так?Вот мой ответ на запрос

{
  "responseHeader":{
    "status":0,
    "QTime":4,
    "params":{
      "q":"strSO:EV11777-01 AND DocType:LLP AND PackName:06 Delivery Documents - MiniPack"}},
  "response":{"numFound":0,"start":0,"docs":[]
  }}

1 Ответ

1 голос
/ 13 марта 2019

Что здесь не так?

Это зависит от вашего содержания поля. Имейте в виду, что поля с type = string не маркируются!

См. Документацию к Solr: https://lucene.apache.org/solr/guide/7_3/field-types-included-with-solr.html (класс StrField)

String (строка в кодировке UTF-8 или Unicode). Строки предназначены для небольших полей и не разбиваются на токены и не анализируются никаким образом. У них жесткий предел чуть меньше 32K.

Таким образом, ваш запрос будет соответствовать полю, только если содержимое поля точно соответствует содержимому запроса.

Например, содержимое поля ABC DE не будет соответствовать запросу, например ABC DE (между буквами в запросе отсутствует один пробел)

Я рекомендую использовать функцию анализа solr со страницы администрирования solr, чтобы увидеть, как solr обрабатывает ваш запрос. Вы найдете эту функцию по ссылке: http://:8983/solr/#//analysis

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...