2

solr サーバー上のドキュメントを削除しようとしていますが、機能せず、エラーも発生しません。

ブラウザ、curl、およびsolrjを介して削除しようとしましたが、何も機能しません。

(ここで説明されているブラウザとカール:何らかの理由でSolrの削除が機能しない
私のsolrjコードは次のとおりです。

server.deleteByQuery("*:*");
server.deleteById("*");
server.deleteById("guid:*");
server.commit(true, true);

UpdateRequest update = new UpdateRequest();
update.deleteByQuery("*:*");
update.setCommitWithin(0);
server.request(update);
server.commit(true, true);

SolrQuery query = new SolrQuery("*:*");//Search for everything/anything
query.setRows(10);
query.setRequestHandler("/query");
QueryResponse qr = server.query(query); 
SolrDocumentList result = qr.getResults();
for (SolrDocument doc : result) {
    Object id = doc.get("link");
    String names = (String) doc.get("description");
System.out.println(id + " " + names);
}

これを実行した後、またはWebインターフェイスを介して常に結果が得られますが、何も変わりません(ちなみにドキュメントの追加は機能します)。

誰かが私が何を試すことができるか、またはこれの理由が何であるか考えていますか?

アップデート:

そのため、すべてを最初からセットアップしようとしましたが、エラーの原因を突き止めました: solr は Schema.xml ファイルでドキュメントを削除しませんが、それでも理由はわかりません: ペーストビンの schema.xml

4

3 に答える 3

7

理由を見つけました: solr 4.0.0 alphaのバグ

フィールド:

<field name="_version_" type="long" indexed="true" stored="true"/>

solrconfig.xml で更新ログを有効にする場合は、schema.xml ファイルで削除する必要があります。このフィールドがない場合、削除更新クエリは無視されます。

<updateHandler class="solr.DirectUpdateHandler2">
  <updateLog>
    <str name="dir">${solr.data.dir:}</str>
  </updateLog>
</updateHandler>

これは、solr の例の構成を使用し、Schema.xml ファイルを変更するだけのすべての人に発生します。

于 2012-08-23T10:15:45.343 に答える
3

私はこのような動作するコードを持っています:

SolrServer solrServer;
String url = "http://localhost:8080/solr";
solrServer = new HttpSolrServer(url);
solrServer.deleteByQuery("*:*");
solrServer.commit();

私のSolrバージョンは3.6.1です。

于 2012-08-22T13:40:01.860 に答える