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>

クエリを作成し、[タイトル] フィールドで並べ替えようとしました。ログには次のように書かれています:

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 ファイルに何かが欠けていると思いますが、何がありますか?

4

2 に答える 2

3

一般に、単一値 (つまり、トークン化されておらず(単一の用語を生成するアナライザーを使用する場合を除く) 、複数値ではない) で、インデックスが付けられている任意のフィールドで並べ替えることができます。そのためtexttext_*フィールドは並べ替えに適しています。

于 2012-03-02T17:18:03.390 に答える
1

将来の参考のために:あなたがソートしているフィールドは、「あまりにも」トークン化されるべきではありません...
私はこの記事に従って問題を解決しました。

于 2012-03-02T16:48:13.033 に答える