1

「sku」というフィールドを作成しようとしています。これは、次のアナライザーでインデックス付けされています。

<fieldType name="sku" class="solr.TextField">
   <analyzer>
  <tokenizer class="solr.PatternTokenizerFactory" pattern="(SKU|Part(\sNumber)?):?\s(\[0-9-\]+)" group="3"/>
</analyzer>
 </fieldType>

これは、こちらのドキュメントを読んだことによるものですhttp://lucidworks.lucidimagination.com/display/solr/Tokenizers#Tokenizers-RegularExpressionPatternTokenizer

私はすでに solr サーバーに正常に投稿している Java プログラムを持っていますが、ファイルから sku を取得してインデックスを作成していません。ここに私のJavaコードがあります:

ContentStreamUpdateRequest up = new ContentStreamUpdateRequest(
                "/update/extract");
        up.addFile(arg0, arg0.getName());

        up.setParam("literal.id", arg0.getName());
        up.setParam("uprefix", "attr_");
        up.setParam("fmap.content", "attr_content");

        up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);

        server.request(up);

どんな助けでも感謝します。

テキスト ファイルを自分で解析して SKU を抽出し、それらをパラメータとしてサーバーに送信できることは理解していますが、Solr でこれを実行できると思いましたか?

4

1 に答える 1

0

途中でいくつかのステップがあるため、何が起こっているのかわかりにくいです。

たとえば、schema.xml の定義は何ですか。間違いなくそのタイプとしてskuを使用していますか (文字列とは言いません)。次に、フィールド名 (attr_sku?) は何ですか? また、抽出ハンドラーのマッピングは実際に適切にマップされていますか? 抽出ハンドラーは通常、メタデータを個々のフィールドとして送信し、次にすべてのファイル コンテンツを 1 つの大きな長いフィールドとして送信します。sku はメタデータのどこかにありますか?

copyField を非処理のものに実行し、コンテンツが実際に Solr フィールドになるかどうかを確認します。次に、正規表現自体のトラブルシューティングを開始します。

于 2013-01-21T19:11:32.907 に答える