2012-03-02 5 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

「タイトルで並べ替える」と言ったらどういう意味ですか?日付(たとえば最新のもの)、番号(たとえば最初に大きいもの)、またはアルファベット順(文字を1つずつ、ユニコード文字を考慮して)で並べ替えることができます。マルチワードタイトルのソート方法は? – ffriend

答えて

3

をトークン化するべきではありませんtokenized - 単一の項を生成するアナライザ(multiValued)を使用していない場合)にインデックスが付けられます。ですから、textとtext_ *フィールドはソートのためにすぐに出てきます。

0

: あなたがすることによってソートされているフィールドは、「あまりにも」あなたは(すなわち、ない単一値である任意のフィールドで並べ替えることができます...一般的には
I followed this article which solved my problem.

関連する問題