使用事例
Solr で 2 つのドキュメントのインデックスが作成されたとします。フィールドの 1 つは - 以下のように desc_s (文字列) です。
Doc : Doc1
フィールド : desc_s
価値 : XYZ が ABC を 24 億ドルで買収
Doc : Doc2
フィールド : desc_s
価値 : DEF は 34 億ドルの住宅を売却
出力
必要なことは、ABC、XYZ、PQR などのエンティティを抽出し、desc_s から売買シグナルを識別して、それに対してタグを作成することです。
新しいフィールドが作成されました -タグ
タグ(Doc1 用) - ABC、XYZ (文字列)
タグ(Doc2 用) - DEF(文字列)
「シグナル」と呼ばれる別のフィールドを作成し、ファセットとして購入/販売を行います
Signal
|
Buys
|
|___ABC
|___XYZ
Sells
|
|___DEF
何を試しましたか?
エンティティ ABC、XYZ、DEF タグの抽出用 - 正常に動作しています
次のアナライザー (schema.xml 内) を追加して、タグを識別し、それらを 1 つのフィールドに抽出しました。
<field name="tags" type="key_phrases" indexed="true" stored="false" multiValued="true"/>
<copyField source="desc_s" dest="key_phrases"/>
<fieldType name="key_phrases" class="solr.TextField" sortMissingLast="true" omitNorms="true">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.KeepWordFilterFactory"
words="tags.txt" ignoreCase="true"/>
<filter class="solr.LowerCaseFilterFactory"/>
</analyzer>
</fieldType>
ここで、tags.txt にはすべてのエンティティ (ABC、DEF、PQR、XYZ など) が含まれており、アナライザーがタグ フィールドで目的のエンティティを検索して入力します。
エンティティ抽出のためにこれに従った
同じために購入/販売ファセットを構築する方法について、いくつかの提案/アプローチが必要です。今のところ、desc_s のテキストには買い/売りのみが含まれると考えることができます。