0

SOLRにはCellというモジュールがあります。Tika を使用してドキュメントからコンテンツを抽出し、SOLR でインデックスを作成します。

https://github.com/apache/lucene-solr/tree/master/solr/contrib/extractionのソースから、Cell は生の抽出されたテキスト ドキュメント テキストを「コンテンツ」と呼ばれるフィールドに配置すると結論付けます。フィールドは SOLR によって索引付けされますが、保管されません。ドキュメントをクエリすると、「コンテンツ」が出てきません。

私の SOLR インスタンスにはスキーマがありません (デフォルトのスキーマをそのまま残しました)。

UpdateRequestHandlerデフォルト(POST to )を使用して、同様の種類の動作を実装しようとしています/solr/corename/update。POST リクエストは次のようになります。

<add commitWithin="60000">
    <doc>
        <field name="content">lorem ipsum</field>
        <field name="id">123456</field>
        <field name="someotherfield_i">17</field>
    </doc>
</add>

この方法でドキュメントを追加すると、コンテンツフィールドがインデックス化されて保存されます。クエリ結果に表示されます。そうであってほしくありません。それはスペースの無駄です。

Cell がドキュメントを追加する方法について何が欠けていますか?

4

2 に答える 2

2

フィールドにコンテンツを保存したくない場合は、フィールドを stored="false" に設定する必要があります。

スキーマレス モードを使用しているため (スキーマはまだありますが、新しいフィールドが追加されたときに動的に生成されるだけです)、スキーマ APIを使用してフィールドを変更する必要があります。

これを行うには、次のコマンドを発行しますreplace-field

curl -X POST -H 'Content-type:application/json' --data-binary '{
  "replace-field":{
  "name":"content",
  "type":"text",
  "stored":false }
}' http://localhost:8983/solr/collection/schema

に対してリクエストを発行すると、定義されたフィールドを表示できます/collection/schema/fields

于 2016-10-31T16:31:00.857 に答える