12

schema.xmlに「text_general」フィールドがあります

<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
    <analyzer type="index">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
        <filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
    <analyzer type="query">
        <tokenizer class="solr.WhitespaceTokenizerFactory"/>
        <filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/><filter class="solr.LowerCaseFilterFactory"/>
    </analyzer>
</fieldType>

ドキュメントを保存しました:

document1:
   spell = "contro un indice generale dei prezzi salito del 2, 1%. Rincari ben piщ evidenti, tra i prodotti da bar"
   testata = "Mattino di Padova (Il)"

document2:
   spell="con i prodotti di qualitа vinco la crisi dei consumi Farinetti: con"
   testata = "Italia Oggi"

document3
   spell = "convenienza Il 2008 porta i primi aumenti nei pre zi L'Ipercoop cresce il listino"
   testata = "Nuova Ferrara (La)"

「spell」フィールドと「testata」フィールドのタイプは「text_general」です。

私のためにうまく機能している検索:

http://localhost:8080/solr/select?q={!type=edismax qf=spell v='co*'}

しかし、ソートにはいくつかの問題があります。

http://localhost:8080/solr/select?q={!type=edismax qf=spell v='co*'}&sort=testata desc

それは私にこの結果を返します:

    document1:
       spell = "contro un indice generale dei prezzi salito del 2, 1%. Rincari ben piщ evidenti, tra i prodotti da bar"
       testata = "Mattino di Padova (Il)"

    document2:
       spell="con i prodotti di qualitа vinco la crisi dei consumi Farinetti: con"
       testata = "Italia Oggi"

    document3
       spell = "convenienza Il 2008 porta i primi aumenti nei pre zi L'Ipercoop cresce il listino"
       testata = "Nuova Ferrara (La)"

ソートが正しく機能しない理由がわかりません。次のような結果が返されるはずです。

    document3
       spell = "convenienza Il 2008 porta i primi aumenti nei pre zi L'Ipercoop cresce il listino"
       testata = "Nuova Ferrara (La)"

    document1:
       spell = "contro un indice generale dei prezzi salito del 2, 1%. Rincari ben piщ evidenti, tra i prodotti da bar"
       testata = "Mattino di Padova (Il)"

    document2:
       spell="con i prodotti di qualitа vinco la crisi dei consumi Farinetti: con"
       testata = "Italia Oggi"
4

1 に答える 1

28

並べ替えは、複数値のトークン化されたフィールドではうまく機能しません。フィールドタイプで定義されている
ように、トークンサイズになるため、並べ替えは正常に機能しません。testatatext_general

並べ替えは、ドキュメントの「スコア」、または multiValued="false" indexed="true"フィールドがトークン化されていない(つまり、アナライザーがない)か、単一の用語のみを生成するアナライザーを使用する(つまり、KeywordTokenizerを使用する)場合は、任意のフィールドで実行できます。

ソース:http ://wiki.apache.org/solr/CommonQueryParameters#sort

フィールドタイプとして使用し、フィールドを新しいフィールドにstringコピーします。title

<field name="testata_sort" type="string" indexed="true" stored="false"/>

<copyField source="testata" dest="testata_sort" />  
于 2011-11-03T09:10:52.090 に答える