https://issues.apache.org/jira/browse/SOLR-6954
Considering changing SolrClient#shutdown to SolrClient#close.
SolrCient implments Closable interface
==> so we can use try-with-resource
Solr 7024: improve java detection and error message
if [ -z "$JAVA" ]; then
echo >&2 "The currently defined JAVA_HOME ($JAVA_HOME) refers"
echo >&2 "to a location where Java could not be found. Aborting."
echo >&2 "Either fix the JAVA_HOME variable or remove it from the"
echo >&2 "environment so that the system PATH will be searched."
exit 1
fi
$JAVA -version >/dev/null 2>&1 || {
echo >&2 "Java not found, or an error was encountered when running java."
echo >&2 "A working Java 8 is required to run Solr!"
echo >&2 "Please install Java 8 or fix JAVA_HOME before running this script."
echo >&2 "Command that we tried: '${JAVA} -version'"
echo >&2 "Active Path:"
echo >&2 "${PATH}"
exit 1
}
https://issues.apache.org/jira/browse/SOLR-6449
Add first class support for Real Time Get in Solrj
public SolrDocumentList getById(Collection<String> ids, SolrParams params) throws SolrServerException {
if (ids == null || ids.isEmpty()) {
throw new IllegalArgumentException("Must provide an identifier of a document to retrieve.");
}
ModifiableSolrParams reqParams = new ModifiableSolrParams(params);
if (StringUtils.isEmpty(reqParams.get(CommonParams.QT))) {
reqParams.set(CommonParams.QT, "/get");
}
reqParams.set("ids", (String[]) ids.toArray());
return query(reqParams).getResults();
}
https://issues.apache.org/jira/browse/SOLR-7013
Unclear error message with solr script when lacking jar executable
hasJar=$(which jar 2>/dev/null)
hasUnzip=$(which unzip 2>/dev/null)
if [ ${hasJar} ]; then
unzipCommand="$hasJar xf"
else
if [ ${hasUnzip} ]; then
unzipCommand="$hasUnzip"
else
echo -e "This script requires extracting a WAR file with either the jar or unzip utility, please install these utilities or contact your administrator for assistance."
exit 1
fi
fi
https://issues.apache.org/jira/browse/SOLR-6521
final Object lock = locks.get(Math.abs(Hash.murmurhash3_x86_32(collection, 0, collection.length(), 0) % locks.size()));
Add Long/FixedBitSet and replace usage of OpenBitSet
https://issues.apache.org/jira/browse/LUCENE-5440
http://lucene.markmail.org/thread/35gw3amo53dsqsqj
==> when a lot of data and computation, squeeze every uneeded operation
So clearly FBS is faster than OBS (perhaps unless you use fastSet/Get) since it doesn't need to do bounds checking.
Also, FBS lets your grow itself by offering a convenient copy constructor which allows to expand/shrink the set.
SOLR-7050: realtime get should internally load only fields specified in fl [Performance]
https://issues.apache.org/jira/browse/SOLR-7050
== Only load needed fields when call search.doc
StoredDocument luceneDocument = searcher.doc(docid);
changed to:
StoredDocument luceneDocument = searcher.doc(docid, rsp.getReturnFields().getLuceneFieldNames());
SOLR-6845: Suggester tests start new cores instead of reloading
https://issues.apache.org/jira/browse/SOLR-6845
LOG.info("reload(" + name + ")");
init
else
if (getStoreFile().exists()) {
if (LOG.isDebugEnabled()) {
LOG.debug("attempt reload of the stored lookup from file " + getStoreFile());
}
SOLR-6909: Extract atomic update handling logic into AtomicUpdateDocumentMerger
Allow pluggable atomic update merging logic
util method: int docid = searcher.getFirstMatch(new Term(idField.getName(), idBytes));
excludeProtocols: SSLv3
Windows Bat
SOLR-6928: solr.cmd stop works only in english
change
For /f "tokens=5" %%j in ('netstat -aon ^| find /i "listening" ^| find ":%SOLR_PORT%"') do (
to
For /f "tokens=5" %%j in ('netstat -aon ^| find "TCP " ^| find ":%SOLR_PORT%"') do (
One related edit is that the find command should look for ":8983 " (with a space after the port number) to avoid matching other ports, e.g. the following stop command would select two lines in netstat output since :1234 will also match :12345
solr start -p 1234
solr start -p 12345
solr stop -p 1234
SOLR-7016: Fix bin\solr.cmd to work in a directory with spaces in the name.
Add "": "%SOLR_TIP%\bin"
START /B "Solr-%SOLR_PORT%" /D "%SOLR_SERVER_DIR%" "%JAVA%" -server -Xss256k %SOLR_JAVA_MEM% %START_OPTS% -Dlog4j.configuration="%LOG4J_CONFIG%" -DSTOP.PORT=!STOP_PORT! -DSTOP.KEY=%STOP_KEY% ^
SOLR-7024: bin/solr: Improve java detection and error messages
SOLR-7013: use unzip if jar is not available (merged from r1653943)
https://issues.apache.org/jira/browse/SOLR-6787
Minors
https://issues.apache.org/jira/browse/SOLR-7059
Using paramset with multi-valued keys leads to a 500
Actually map in MapSolrParams is changed from Map<String,String> to Map<String,Object>
https://issues.apache.org/jira/browse/SOLR-7046
NullPointerException when group.function uses query() function
(Map) context = ValueSource.newContext(searcher);
The variable context is always null because it's scope is local to this function, but it gets passed on to another function later.
Not fixed yet
https://issues.apache.org/jira/browse/SOLR-6640
Don't understand
regression in /update/extract ? ref guide examples of fmap & xpath don't seem to be working
https://issues.apache.org/jira/browse/SOLR-6856