在一个不同的SO问题上,我要求澄清我对不同类型的solr提交的理解。这是主题链接Understanding the different type of SOLR commits
现在,基本上我想知道当我使用任何solr POST请求传递commit=true
或commit=false
时,solr下面会发生什么。
提交=真
curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/keywords/update/json/docs?commit=true' --data-binary '{ "id": "550148", "keyword": "astle city", "formatted_address": "Auckland, New Zealand", "country_code": "NZ", "region": "Auckland", "place": "Auckland", "lat": "-36.84846", "lng": "174.763332", "update_date": "2015-10-0500: 49: 35", "index": "0", "north": "NULL", "south": "NULL", "east": "NULL", "west": "NULL" }'
提交=假
curl -X POST -H 'Content-Type: application/json' 'http://localhost:8983/solr/keywords/update/json/docs?commit=false' --data-binary '{ "id": "550148", "keyword": "astle city", "formatted_address": "Auckland, New Zealand", "country_code": "NZ", "region": "Auckland", "place": "Auckland", "lat": "-36.84846", "lng": "174.763332", "update_date": "2015-10-0500: 49: 35", "index": "0", "north": "NULL", "south": "NULL", "east": "NULL", "west": "NULL" }'
当我没有设置它时,commit params的默认值是什么?
答案 0 :(得分:1)
简单地说,commit意味着应用于更新Documents的索引数据。 如果commit = false,则只记录tlog并且无法搜索。 但是commit = true,可以使用新的搜索器搜索更新的文档。 (特别是使用openSearcher = false更新,也无法搜索。)
答案 1 :(得分:1)
正如前面的回答中所提到的,详细看看这个位[3]。
如果您通过"提交"参数,你要求硬提交。 如果你不这样做,就不会发生任何提交。 在打开搜索器之前,您无法搜索索引的文档。 告诉Solr打开搜索器的方法是使用软提交或硬提交(打开的搜索者=真)。
在您提交之前,您无法搜索这些文档,甚至可能无法将它们刷新到您的Lucene目录(这也取决于您的RAMBuffer,但这是一个不同的故事)