2012-03-02 4 views
3

У меня есть поле, называемое «название»Что мне нужно сделать, чтобы сделать поле в SOLR отсортированным?

<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> 

я сделать мой запрос и попытаться сортировать по [названию] поле. журнал говорит:

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 

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

+0

Что вы имеете в виду, говоря «сортировать по названию»? Вы можете сортировать данные по дате (например, последние сначала), по числу (например, самому большому в начале) или в алфавитном порядке (символы поодиночке, с учетом символов Юникода). И как хотите отсортировать название многословного слова? – ffriend

ответ

3

В целом можно сортировать по любому полю, которое однозначный (то есть, не tokenized - если он не использует анализатор, который производит один термин - или multiValued) и индексируется. Таким образом, поля для ввода текста и текста * являются правильными для сортировки.

Смежные вопросы