关于不根据条件提交的solr文件

时间:2016-01-09 04:23:54

标签: solr

我正试图找到一种方法来阻止使用solr api基于特定条件的solr提交。

目前,每个solr文档索引都有一个唯一的id。那么如果根据我的下面的代码已经存在id,我怎么能更新它不提交solr索引的solr api:

SolrInputDocument solrDoc = new SolrInputDocument();

                solrDoc.addField("id", indexUrl);
solrDoc.addField("price",100);

HttpSolrServer server = new HttpSolrServer(endpoint);
UpdateResponse response = server.add(solrDoc);

                server.commit();

由于

1 个答案:

答案 0 :(得分:0)

你错误地将Solr误认为SQL服务器...... Solr提交与SQL提交完全不同。

Solr commit背后的想法是降低对磁盘的写入量。 Solr不是事务性的......你没有回滚能力 - 除了可能手动删除tlog文件夹。您需要完全重写提交功能以执行您想要的操作。

您可以在发送之前查询Solr的ID,但是您没有ACID保证,当它们被发送和提交时,不会有其他已经具有相同ID的文档。< / p>

您可以通过使用共享SQL服务器为您生成ID来获得ACID保证。或者通过使用zooKeeper来做同样的事情(虽然难以配置)。