1

私はすでにSolrで映画データのインデックスを作成しています。基本的なクエリは期待どおりに機能していますが、aqとともにファセットのフィルタークエリを実行すると、結果が異なります。

クエリ/select?q=facetGenre:Drama&wt=xmlは結果を返します

一方、クエリ/select?q=*.*&fq=facetGenre:Drama&wt=xmlは結果を返しません。

これの理由は何でしょうか?助けてください。

ジャンルフィールドには「Action\Adventure」などの「\」があるため、カスタムフィールドタイプは「facetStringwithSlash」です。詳細は以下のとおりです。

<fieldType name="facetStringwithSlash" class="solr.TextField" positionIncrementGap="100">

<analyzer type="index">
<tokenizer class="solr.PatternTokenizerFactory" pattern="[/,]\s*"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" catenateWords="0" preserveOriginal="1" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" stemEnglishPossessive="1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/>
</analyzer>

<analyzer type="query">
<tokenizer class="solr.PatternTokenizerFactory" pattern="[/,]\s*"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="0" generateNumberParts="0" preserveOriginal="1" catenateWords="0" catenateNumbers="0" catenateAll="0" splitOnCaseChange="0" stemEnglishPossessive="1"/>
<filter class="solr.ASCIIFoldingFilterFactory"/></analyzer></fieldType>
</analyzer>

</fieldType>
4

1 に答える 1

2

@joeln が指摘したよう:に、クエリで使用する必要があります。

select?q=*:*任意のフィールドの任意の値に一致することを意味します。

の場合select?q=*.*、クエリでフィールドが指定されていないため、デフォルト フィールドで検索し、そこに含まれる任意のテキストと一致します.。おそらくそれが、応答でヒットが得られない理由です。

于 2012-11-17T11:53:55.543 に答える