0

solrクエリ検索では、検索

q=*%3A*&fq=grand_cat_str%3ABeklædning

Solrはfqを次のように読み取ります。<str name="fq">grand_cat_str:Beklædning</str>

結果を返しません。Bekl * dningをワイルド検索すると、正しい結果が返されます。

[編集]追加しました

    <fieldType name="string" class="solr.StrField" sortMissingLast="true" >
 <analyzer type="index">
        <tokenizer class="solr.StandardTokenizerFactory"/>
        <filter class="solr.ASCIIFoldingFilterFactory"/>
 </analyzer>

</fieldType>

しかし、エラーが発生しました:

<org.apache.solr.common.SolrException: FieldType: StrField (string) does not support specifying an analyzer
4

3 に答える 3

0

it is indeed an escape problem. using org.apache.solr.client.solrj.util.ClientUtils.escapeQueryChars(String) is able to make string readble.

于 2012-11-01T15:21:03.990 に答える
0

これは、Solrが最初の127ASCII文字セットにない文字を処理する方法に関連しています。最良の推奨事項は、ASCIIFoldingFilterFactoryアナライザーをgrand_cat_strスキーマのフィールドに追加することです。

アナライザーの追加に関するガイダンスが必要な場合は、スキーマでのアナライザーの指定を参照してください。

于 2012-10-05T16:54:13.520 に答える
0

彼のコーパス内のほとんどのドキュメントが同じ言語(デンマーク語?)である場合、ASCIIFoldingFilterFactoryを適用することは、ユーザーがクエリを入力する方法によっては、不適切なオプションである可能性が非常に高くなります。

クエリをエンコードしてみましたか?

q=*%3A*&fq=grand_cat_str%3ABekl%C3%A6dning

うまくいくはずです

于 2012-10-06T09:51:04.633 に答える