Почему solr возвращает результат только с точным поиском?

Я создал ядро, secondCore{id, resid, title, name, cat, role, exp} Рассмотрим пример данных: {"id" : "11","resid" : 384,"title" : "perl and java developer","name" : "appnede new name","cat" : "22,11","role" : "new role","exp" : 1 }. Когда я ищу title:perl, я получаю 0 результатов. Я получаю указанный результат, только если я ищу title:"perl and java developer" или title:perl*. Ответ:

<response>

<lst name="responseHeader">
  <int name="status">0</int>
  <int name="QTime">2</int>
  <lst name="params">
    <str name="indent">true</str>
    <str name="q">title:perl*</str>
    <str name="_">1444371225114</str>
    <str name="wt">xml</str>
  </lst>
</lst>
<result name="response" numFound="1" start="0">
  <doc>
    <str name="id">11</str>
    <arr name="resid">
      <long>384</long>
    </arr>
    <arr name="title">
      <str>perl and java developer</str>
    </arr>
    <arr name="name">
      <str>appnede new name</str>
    </arr>
    <arr name="cat">
      <long>2211</long>
    </arr>
    <arr name="role">
      <str>new role</str>
    </arr>
    <arr name="exp">
      <long>1</long>
    </arr>
    <long name="_version_">1514531870450122752</long></doc>
</result>
</response>

Кроме того, почему ответ находится в обр <arr name="role"><str>new role</str></arr>? Я хочу это в <str name="role">new role</str> и так же с другими файлами. Как сделать? Я использую Solr 5.3.0.


person Kamal Nayan    schedule 09.10.2015    source источник
comment
Пожалуйста, добавьте вас schema.xml.   -  person alexf    schedule 09.10.2015
comment
@alexf Solr 5.3.0 неявно управляет файлом managed-schema, о чем я узнал позже. Изменение моего schema.xml не повлияло. Я разместил свой ответ ниже, пожалуйста, прочитайте и измените, если это необходимо. :)   -  person Kamal Nayan    schedule 12.10.2015


Ответы (2)


Я думаю, вы определили свое поле как строку вместо текста. Строковое поле точно соответствует, тогда как текстовое поле даст вам результаты, которые вы ищете.

Проверьте также этот другой ответ: https://stackoverflow.com/a/7187441/147306

person jsp    schedule 09.10.2015
comment
Спасибо за ссылку. :) @jsp - person Kamal Nayan; 12.10.2015

Решено выше вещь. Я изменил тип поля на text_general_new, новый тип поля похож на text_general с некоторыми изменениями.
Кроме того, вы можете использовать text_general с multiValued="false". Эти изменения необходимо внести в файл managed-schema. Это неявный файл схемы, используемый solr.

Но у меня как у новичка есть еще одно сомнение. Solr неявно использовал управляемую схему как замену schema.xml, но откуда он узнал о полях в файле JSON? Я имею в виду, что он уже определил поле для каждого поля, присутствующего в моем JSON. Как это стало известно? Какой файл (с локацией) за это отвечает?

person Kamal Nayan    schedule 12.10.2015