What you’re seeing is the input from the client. You’ve passed true, true, which are waitFlush and waitSearcher which sets softCommit _for that call_ to false. It has nothing to do with the settings in your config file.
bq. I am not passing the parameter to do a softCommit in the SolrJ command. I don’t think so. That’s a hard commit. This is a little tricky since the waitFlush and waitSearcher params don’t tell you that they are about hard commits. There used to only be hard commits, so... But…. these settings are highly suspicious. Here’s the long form: https://lucidworks.com/post/understanding-transaction-logs-softcommit-and-commit-in-sorlcloud/ It is risky to have your autocommit settings commented out. You risk transaction logs growing forever to no purpose whatsoever. Your call does a hard commit _and_ opens a new searcher for, apparently, every document. But your autoSoftCommit settings also open a new searcher without doing anything about flushing data to disk every second. Usually, this is far too often unless you have extremely stringent latency requirements, and in this case unless you’re only indexing once in a great while your caches are pretty useless. I strongly urge you to uncomment autocommit settings. Make the autoCommit interval something reasonable (15-60 seconds for instance) with openSearcher=false. Then lengthen your autoSoftCommit settings to as long as you can stand. The longer the interval, the less work you’ll do opening new searchers, which is a rather expensive operation. I like 5-10 minutes if possible, but your app may require shorter intervals. Then don’t send any commit settings in your SolrJ program at all. Best, Erick > On Jul 21, 2020, at 1:32 PM, Tyrone Tse <tyrone...@hotmail.com> wrote: > > I am using Solr 8.5 cloud, and in my collection I have edited the > solrconfig.xml file to use > <autoSoftCommit> > <maxTime>1000</maxTime> > </autoSoftCommit> > > and commented out the default <autoCommit> configuration > > <!-- > <autoCommit> > <maxTime>15000</maxTime> > <openSearcher>false</openSearcher> > </autoCommit> > --> > > We are using SolrJ to post files to the Solr here is the snippet of Java > code that does it > > try(HttpSolrClient solrClient = solr.build()){ > ContentStreamUpdateRequest up = new > ContentStreamUpdateRequest("/update/extract"); > up.addFile(f, mimeType); > String tempId = f.getName() + (new Date()).toString(); > up.setParam("literal.id", tempId); > up.setParam("literal.username", user); > up.setParam("literal.fileName", f.getName()); > up.setParam("literal.filePath", path); > up.setParam("uprefix", "attr_"); > up.setParam("fmap.content", "attr_content"); > up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true); > logger.info("PreRequest"); > solrClient.request(up); > logger.info("PostRequest"); > resultId = tempId; > } catch (IOException | SolrServerException | > HttpSolrClient.RemoteSolrException e) { > logger.error("Error connecting.committing to Solr", e); > } > > So I am not passing the parameter to do a softCommit in the SolrJ command. > > When I posted a file to my Solr core, when I look at the solr.log file I > see the following information > > 2020-07-21 16:38:54.719 INFO (qtp1546693040-302) [c:files s:shard1 > r:core_node5 x:files_shard1_replica_n2] o.a.s.u.p.LogUpdateProcessorFactory > [files_shard1_replica_n2] webapp=/solr path=/update > params={update.distrib=TOLEADER&update.chain=files-update-processor&waitSearcher=true&openSearcher=true&commit=true&softCommit=false&distrib.from= > http://192.168.1.191:8983/solr/files_shard2_replica_n6/ > > Does having <autoSoftCommit> set in the solrconfig.xml override REST Post > calls that have the parameter softCommit=false and force a softCommit when > the data is posted to Solr. > > Thanks in advance.