3

我有一个名为“标题”的字段

<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 文件中遗漏了一些东西,但是什么?

4

2 回答 2

3

通常,您可以对任何单值字段(标记化(除非它使用生成单个术语的分析器)或多值字段)进行排序,并且已编入索引。所以texttext_*字段是正确的排序。

于 2012-03-02T17:18:03.390 回答
1

供将来参考:您排序的字段不应该“太”标记化......
我按照这篇文章解决了我的问题。

于 2012-03-02T16:48:13.033 回答