カスタム Solr フィルター クラスでインデックス付きトークンにアクセスしたいと思います。クラスは、タグschema.xml
付きの通常のフィルタです。<filter />
これは可能ですか?
ちょっとした背景: クエリが入ってきたら、クエリ トークンの一部を他のトークンに置き換えたいと思いますが、それらがこのフィールドのインデックスにある場合に限ります。たとえば、クエリ トークンを、ワイルドカード検索のような、クエリ トークンで始まるインデックスのすべてのトークンに置き換えるとします。「text:te」を照会する場合、「test」、「tent」、「temple」がフィールド「text」のインデックスにある場合、実際の照会は「text:test | text:tent | text:temple」になります。
API ( TokenFilter
、TokenStream
、AttributeSource
) を調べましたが、インデックスにアクセスする方法が見つかりませんでした。どのフィールドが現在処理されているかについての情報さえ見つけることができませんでしたが、概念的にこれがどれほど意味をなさないかがわかります。
では、インデックスにアクセスする方法はありますか? 最終的に必要なのは、のインスタンスだと思いますorg.apache.lucene.index.Terms
。