7

インデックスを作成したいファイルはサーバーに保存されています (クロールする必要はありません)。/path/to/files/ サンプルの HTML ファイルは

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="product_id" content="11"/>
<meta name="assetid" content="10001"/>
<meta name="title" content="title of the article"/>
<meta name="type" content="0xyzb"/>
<meta name="category" content="article category"/>
<meta name="first" content="details of the article"/>

<h4>title of the article</h4>
<p class="link"><a href="#link">How cite the Article</a></p>
<p class="list">
  <span class="listterm">Length: </span>13 to 15 feet<br>
  <span class="listterm">Height to Top of Head: </span>up to 18 feet<br>
  <span class="listterm">Weight: </span>1,200 to 4,300 pounds<br>
  <span class="listterm">Diet: </span>leaves and branches of trees<br>
  <span class="listterm">Number of Young: </span>1<br>
  <span class="listterm">Home: </span>Sahara<br>

</p>
</p>

solrconfing.xml ファイルにリクエスト ハンドラを追加しました。

<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
  <str name="config">/path/to/data-config.xml</str>
</lst>

私のdata-config.xmlは次のようになります

<dataConfig>
<dataSource type="FileDataSource" />
<document>
    <entity name="f" processor="FileListEntityProcessor" baseDir="/path/to html/files/" fileName=".*html" recursive="true" rootEntity="false" dataSource="null">
        <field column="plainText" name="text"/>
    </entity>
</document>
</dataConfig>

デフォルトの schema.xml ファイルを保持し、次のコードを schema.xml ファイルに追加しました。

 <field name="product_id" type="string" indexed="true" stored="true"/>
 <field name="assetid" type="string" indexed="true" stored="true" required="true" />
 <field name="title" type="string" indexed="true" stored="true"/>
 <field name="type" type="string" indexed="true" stored="true"/>
 <field name="category" type="string" indexed="true" stored="true"/>
 <field name="first" type="text_general" indexed="true" stored="true"/>

 <uniqueKey>assetid</uniqueKey>

セットアップ後に完全インポートを実行しようとすると、すべての html ファイルがフェッチされたことが示されます。しかし、SOLRで検索しても結果は表示されませんでした。考えられる原因は何ですか?

私の理解では、すべてのファイルが正しくフェッチされましたが、SOLR でインデックスが作成されていません。SOLRでこれらのメタタグとHTMLファイルのコンテンツにインデックスを付ける方法を知っている人はいますか?

あなたの返信をいただければ幸いです。

4

4 に答える 4

5

Solr Extracting Request Handlerを使用して、Solr に HTML ファイルをフィードし、html ファイルからコンテンツを抽出できます。例えばリンクで

Solr はApache Tikaを使用して、アップロードされた html ファイルからコンテンツを抽出します。

Nutch with Solr は、Web サイトをクロールしてインデックスを作成したい場合に、より幅広いソリューションです。
Nutch with Solr のチュートリアルで始めることができます。

于 2013-02-06T04:28:56.360 に答える
0

data-config.xml に fileName="*.html" を含めるつもりでしたか? これで fileName=".*html" ができました

Solr はメタ フィールドを html からインデックス フィールドに変換する方法を知らないと確信しています。私は試していません。

ただし、(x)html (xpath を使用) を読み取るプログラムを作成しました。これにより、フォーマットされた xml ファイルが作成され、\update に送信されます。この時点で、dataimporthandler を使用して、フォーマットされた xml ファイルを探すことができるはずです。

于 2013-02-05T18:58:06.567 に答える
-1

最も簡単な方法はpost、bin ディレクトリのツールを使用することです。すべての作業を自動的に行います。ここに例があります

./post -c conf1 /path/to/files/*

詳細はこちら

于 2015-12-06T18:57:37.873 に答える