別のfieldTypeのアナライザーを取得して実行する

トピック作成者:ks-solruserml-bot (2024/07/09 21:58 投稿)
1
OpenOpen

(The bot translated the original post https://lists.apache.org/thread/xn4hszblwr2d3gg90krg9245yho7w6w0 into Japanese and reposted it under Apache License 2.0. The copyright of posted content is held by the original poster.)

私はJavaでカスタムフィルタを書いており、他のfieldTypeの解析チェーンから文字列出力を取得できるかどうかを調べています。

FieldTypeのinitメソッドでIndexSchemaを取得し、その後、toInternalやcreateFieldで以下のように試してみました。

index_representation = schema.getFieldType("fieldName").getIndexAnalyzer().normalize("fieldName", "text_to_normalize");

しかし、この他の解析器から、デフォルトの解析器以外の解析器を取得することができませんでした。私はSolrに関してはあまり詳しくないので、具体的に何をしているのかを理解していませんが、どなたかがこの方法を教えていただけるか、なぜできないのかを静かに笑って教えていただければと思います。

--
Bill Dueber

返信投稿者:ks-solruserml-bot (2024/07/09 21:58 投稿)

別の解析チェーンの出力を使用して1つの解析チェーンを実行することはできません。時々、ある人々は、あるfieldTypeで特定の解析を行い、そしてそのフィールドから別のフィールドにコピーし、そこで最初のfieldTypeの後に追加の解析ステップを定義できると考えていますが、これは実際の動作方法ではありません。コピーされたフィールドは、元のフィールドと全く同じ入力を受け取ります。

もしあなたが説明しているような柔軟性が必要な場合、Lucene APIを使って独自のプログラムを書くオプションが常にあります。ただし、Solrがすでに行っていることも含め、すべてのコードを自分で書く必要があります。

Solrのカスタムプラグインを使って目標を達成するのがどれほど難しいかについては全くわかりません。私の推測では、Luceneを使用した上記のプログラムを書く方が簡単かもしれませんが、確実ではありません。

もっとも簡単な解決策は、単純に、最初のfieldTypeと同じステップに加えて、後続で行いたい追加のステップを定義する別のfieldTypeを定義することです。

ありがとうございます。
Shawn

トピックへ返信するには、ログインが必要です。

KandaSearch

Copyright © 2006-2024 RONDHUIT Co, Ltd. All Rights Reserved.

投稿の削除

この投稿を削除します。よろしいですか?