Что мне нужно сделать, чтобы поле в SOLR сортировалось? - PullRequest
3 голосов
/ 02 марта 2012

У меня есть поле с названием "title"

<field name="title" type="text_general" indexed="true" stored="true" required="true" omitNorms="false"/>

Вот определение файла:

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.StandardTokenizerFactory"/>
  <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
  <filter class="solr.LowerCaseFilterFactory"/>
  <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
  <filter class="solr.LowerCaseFilterFactory"/>
  <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
</analyzer>
<analyzer type="query">
 <tokenizer class="solr.StandardTokenizerFactory"/>
   <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" enablePositionIncrements="true" />
    <filter class="solr.LowerCaseFilterFactory"/>
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
     <filter class="solr.LowerCaseFilterFactory"/>
     <filter class="solr.PhoneticFilterFactory" encoder="DoubleMetaphone" inject="true"/>
  </analyzer>
</fieldType>

Я делаю запрос и пытаюсь отсортировать по полю [title]. в журнале написано:

INFO: [] webapp=/solr path=/select/ params={sort=title+asc&start=0&q="course"&wt=json&rows=15&version=2.2indent%3Don} hits=244 status=0 QTime=1

Что означает, что мой синтаксис, вероятно, правильный:

q="course"&amp;start=0&amp;rows=15&amp;version=2.2indent=true&amp;wt=json&amp;sort=Title%2Basc&sort=title+asc

Проблема в том, что результаты не возвращаются, отсортированные по полю [title]. Я думаю, что мне чего-то не хватает в файле schema.xml, но что?

Ответы [ 2 ]

3 голосов
/ 02 марта 2012

Как правило, вы можете сортировать по любому полю с однозначным значением (то есть без токена - если только он не использует анализатор, который выдает однозначное выражение или многозначность) и индексируется. Таким образом, поля text и text_ * прямо для сортировки.

0 голосов
/ 02 марта 2012

Для дальнейшего использования: поле, по которому вы сортируете, не должно быть «слишком» помечено ...
Я следовал этой статье, которая решила мою проблему.

...