2017-03-05 4 views
1

SolrをTitleでソートしようとしていますが、運がないです。SolrがcopyFieldを正しくソートしていない

私のスキーマでは、私は検索のためにtext_generalとして "title"フィールドを持っていますし、ソートのための文字列として "title_sort"フィールドを持っています。私は "title" text_generalフィールドをとり、それを "title_sort"フィールドに文字列として入れるcopyFieldを作成しました。

<fields> 
    <field name="title" type="text_general" indexed="true" stored="true"/> 
    <field name="title_sort" type="string" indexed="true" stored="false" />  
</fields> 

<copyField source="title" dest="title_sort" /> 

私は、ソートのクエリを実行する「title_sortのDESCは、」これは私が戻って

title: Don’t Mind If I Do 
title: Men Don't Run Marathons 
title: Danny 

得るものですcopyFieldは、文字列にtext_generalフィールドを変換することができませんか?

+0

ソートに使用しているクエリを共有していただけますか。 –

+0

私はSolrに少し新しくなっていますので、これがあなたが求めているものかどうか教えてください。 Solrの管理パネルでクエリを実行すると、http:// localhost:8080/solr/collection1/select?q = *%3A *&sort = title_sort + desc&wt = json&indent = true –

+0

追加した後で再インデックス付けしましたか? copyField命令? (Solrはすべての文書を調べずにセカンダリフィールドを更新するわけではありません) 'title_sort'フィールドをストアドとして設定し、そこに正しい情報が得られていることを確認してください。すべてのフィールドが処理される前に 'copyField'命令が実行されるので、フィールドの型はcopyField命令に影響しません。 – MatsLindh

答えて

0

@MatsLindhの助けを借りて解決しました。

私はCoreAdminパネルでスキーマをリロードしていましたが、それは変更を加えると思っていました。 Solrはすべてのドキュメントを調べずにセカンダリフィールドを更新するので、copyField命令を追加してから再インデックスを作成しなければなりませんでした。