Nutch クロールされたデータを Bluemix solr で索引付けしようとしていますが、それを行う方法が見つかりません。私の主な質問は次のとおりです。そうするのを手伝ってくれる人はいますか? ナッチ クロールしたデータの結果を Blumix Solr に送信するにはどうすればよいですか。クロールには Nutch 1.11 を使用しましたが、これまでに行ったことと直面した問題の一部を以下に示します。2 つの解決策があると思いました。
- ナットコマンドで:
「NUTCH_PATH/bin/nutch インデックス クロール/crawldb -linkdb クロール/linkdb クロール/ -Dsolr.server.url="OURSOLRURL"」</p>
OURSOLR によって、nutch のクロールされたデータをインデックス化できます。しかし、私はそれにいくつかの問題を発見しました。
a-奇妙に聞こえるかもしれませんが、URL を受け入れることができませんでした。代わりに URL のエンコードを使用して処理できます。
b-特定のユーザー名とパスワードに接続する必要があるため、nutch が solr に接続できませんでした。これを考慮して:
Active IndexWriters :
SolrIndexWriter
solr.server.type : Type of SolrServer to communicate with (default 'http' however options include 'cloud', 'lb' and 'concurrent')
solr.server.url : URL of the Solr instance (mandatory)
solr.zookeeper.url : URL of the Zookeeper URL (mandatory if 'cloud' value for solr.server.type)
solr.loadbalance.urls : Comma-separated string of Solr server strings to be used (madatory if 'lb' value for solr.server.type)
solr.mapping.file : name of the mapping file for fields (default solrindex-mapping.xml)
solr.commit.size : buffer size when sending to Solr (default 1000)
solr.auth : use authentication (default false)
solr.auth.username : username for authentication
solr.auth.password : password for authentication
コマンドライン出力で、コマンド「solr.auth = true solr.auth.username = "SOLR-UserName" solr.auth.password = "Pass"」の認証パラメーターを使用して、この問題を管理しようとしました。
したがって、これまでのところ、このコマンドを使用する必要があります。
」bin/nutch インデックス クロール/crawldb -linkdb クロール/linkdb クロール/セグメント/2016* solr.server.url="https%3A%2F%2Fgateway.watsonplatform.net%2Fretrieve-and-rank%2Fapi%2Fv1%2Fsolr_clusters% 2FCLUSTER-ID%2Fsolr%2Fadmin%2Fcollections" solr.auth=true solr.auth.username="ユーザー名" solr.auth.password="PASS"".
しかし、何らかの理由で、このコマンドは認証パラメーターをクロールされたデータ ディレクトリと見なし、機能しません。だから、「Active IndexWriters」への正しい方法ではないと思いますが、どうすればいいですか??
- curl コマンドで:
“curl -X POST -H "Content-Type: application/json" -u "BLUEMIXSOLR-USERNAME":"BLUEMIXSOLR-PASS" " https://gateway.watsonplatform.net/retrieve-and-rank/api/v1/ solr_clusters/CLUSTERS-ID/solr/example_collection/update " --data-binary @{/path_to_file}/FILE.json"</p>
このコマンドで作成されたjsonファイルをフィードできるのではないかと思いました:
bin/nutch commoncrawldump -outputDir finalcrawlResult/ -segment crawl/segments -gzip -extension json -SimpleDateFormat -epochFilename -jsonArray -reverseKey しかし、ここにはいくつかの問題があります。
を。このコマンドは、複雑なパスで非常に多くのファイルを提供するため、それらすべてを手動で投稿するには非常に時間がかかります。1 つのコマンドだけで、ディレクトリとそのサブディレクトリ内のすべてのファイルを一度に POST する方法はありますか??
b. commoncrawldump で作成された json ファイルの先頭に "ÙÙ÷yœ" という奇妙な名前があります。
c. 私は奇妙な名前を削除し、これらのファイルの 1 つだけを POST しようとしましたが、結果は次のとおりです。
{"responseHeader":{"status":400,"QTime":23},"error":{"metadata":["error-class","org.apache.solr.common.SolrException","root-error-class","org.apache.solr.common.SolrException"],"msg":"Unknown command 'url' at [9]","code":400}}
これらのファイルは Bluemix solr にフィードできず、すべて役に立たないということですか?