SOLRJをクライアントとして使用したSOLRからインデックスを削除します

StackOverflow https://stackoverflow.com/questions/2657409

  •  27-09-2019
  •  | 
  •  

質問

SOLRサーバー上のドキュメントのインデックス作成用のクライアントとしてSOLRJを使用しています。

SOLRサーバーから「ID」でインデックスを削除しているときに問題があります。次のコードを使用してインデックスを削除しています。

server.deleteById("id:20");
server.commit(true,true);

その後、ドキュメントを再度検索すると、検索結果には上記のドキュメントも含まれています。このコードで何が問題になっているのかわからない。問題を手伝ってください。

ありがとう!

役に立ちましたか?

解決

DeleteByIDを呼び出すときは、クエリの構文なしでIDを使用するだけです。

server.deleteById("20");
server.commit();

他のヒント

ドキュメントを削除したら、サーバーをコミットし、次の行を追加します。サーバーのコミットラインの後。

  UpdateRequest req = new UpdateRequest();
  req.setAction( UpdateRequest.ACTION.COMMIT, false, false );
  req.add( docs );
  UpdateResponse rsp = req.process( server );

メソッドを使用します deleteByQuery() クエリに一致するドキュメントを削除するには:

server.deleteByQuery("id:20");
server.commit();

したがって、DeleteByIDは、1つの属性のみを使用してキーを形成している場合にのみ機能します。そのため、IDがEmployeeID+Deptidのような複数の属性の組み合わせである場合がありました。しかし、私のテーブルには、従業員とDeptidが別々の列として、その上にインデックスが作成されていました。そのため、レコードを削除したいときは、従業員のみがDeptIDではなくemployedのみでした。 Curlコマンドを使用して、列とその値を指定できる場所を削除すると、レコード全体が削除されます。

例えば、カール http:// localhost:8983/solr/update - データ ':'-H' Content -Type:text/xml; charset = utf-8 '

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top