mirror of https://github.com/apache/lucene.git
SOLR-13802: Write analyzer property luceneMatchVersion to managed schema
This commit is contained in:
parent
67f4c7f36e
commit
4ddde00667
|
@ -259,6 +259,9 @@ Bug Fixes
|
||||||
* SOLR-13712: JMX MBeans are not exposed because of race condition between creating platform mbean server and
|
* SOLR-13712: JMX MBeans are not exposed because of race condition between creating platform mbean server and
|
||||||
registering mbeans. (shalin)
|
registering mbeans. (shalin)
|
||||||
|
|
||||||
|
* SOLR-13802: Managed schema manipulations were not persisting the optional luceneMatchVersion that can be set
|
||||||
|
on an Analyzer. (Thomas Wöckinger)
|
||||||
|
|
||||||
Other Changes
|
Other Changes
|
||||||
----------------------
|
----------------------
|
||||||
|
|
||||||
|
|
|
@ -62,6 +62,7 @@ import org.apache.solr.request.SolrRequestHandler;
|
||||||
import org.apache.solr.response.QueryResponseWriter;
|
import org.apache.solr.response.QueryResponseWriter;
|
||||||
import org.apache.solr.response.transform.TransformerFactory;
|
import org.apache.solr.response.transform.TransformerFactory;
|
||||||
import org.apache.solr.rest.RestManager;
|
import org.apache.solr.rest.RestManager;
|
||||||
|
import org.apache.solr.schema.IndexSchema;
|
||||||
import org.apache.solr.schema.IndexSchemaFactory;
|
import org.apache.solr.schema.IndexSchemaFactory;
|
||||||
import org.apache.solr.search.CacheConfig;
|
import org.apache.solr.search.CacheConfig;
|
||||||
import org.apache.solr.search.FastLRUCache;
|
import org.apache.solr.search.FastLRUCache;
|
||||||
|
@ -207,7 +208,7 @@ public class SolrConfig extends XmlConfigFile implements MapSerializable {
|
||||||
getOverlay();//just in case it is not initialized
|
getOverlay();//just in case it is not initialized
|
||||||
getRequestParams();
|
getRequestParams();
|
||||||
initLibs();
|
initLibs();
|
||||||
luceneMatchVersion = SolrConfig.parseLuceneVersionString(getVal("luceneMatchVersion", true));
|
luceneMatchVersion = SolrConfig.parseLuceneVersionString(getVal(IndexSchema.LUCENE_MATCH_VERSION_PARAM, true));
|
||||||
log.info("Using Lucene MatchVersion: {}", luceneMatchVersion);
|
log.info("Using Lucene MatchVersion: {}", luceneMatchVersion);
|
||||||
|
|
||||||
String indexConfigPrefix;
|
String indexConfigPrefix;
|
||||||
|
@ -896,7 +897,7 @@ public class SolrConfig extends XmlConfigFile implements MapSerializable {
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> toMap(Map<String, Object> result) {
|
public Map<String, Object> toMap(Map<String, Object> result) {
|
||||||
if (getZnodeVersion() > -1) result.put(ZNODEVER, getZnodeVersion());
|
if (getZnodeVersion() > -1) result.put(ZNODEVER, getZnodeVersion());
|
||||||
result.put("luceneMatchVersion", luceneMatchVersion);
|
result.put(IndexSchema.LUCENE_MATCH_VERSION_PARAM, luceneMatchVersion);
|
||||||
result.put("updateHandler", getUpdateHandlerInfo());
|
result.put("updateHandler", getUpdateHandlerInfo());
|
||||||
Map m = new LinkedHashMap();
|
Map m = new LinkedHashMap();
|
||||||
result.put("query", m);
|
result.put("query", m);
|
||||||
|
|
|
@ -219,6 +219,8 @@ public class SchemaXmlWriter extends TextResponseWriter {
|
||||||
if ( ! "solr.TokenizerChain".equals(analyzerProperties.getVal(i))) {
|
if ( ! "solr.TokenizerChain".equals(analyzerProperties.getVal(i))) {
|
||||||
writeAttr(name, analyzerProperties.getVal(i).toString());
|
writeAttr(name, analyzerProperties.getVal(i).toString());
|
||||||
}
|
}
|
||||||
|
} else if (name.equals(IndexSchema.LUCENE_MATCH_VERSION_PARAM)) {
|
||||||
|
writeAttr(name, analyzerProperties.getVal(i).toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean isEmptyTag
|
boolean isEmptyTag
|
||||||
|
|
|
@ -234,10 +234,9 @@ public final class FieldTypePluginLoader
|
||||||
schema.getDefaultLuceneMatchVersion() :
|
schema.getDefaultLuceneMatchVersion() :
|
||||||
SolrConfig.parseLuceneVersionString(matchVersionStr);
|
SolrConfig.parseLuceneVersionString(matchVersionStr);
|
||||||
if (luceneMatchVersion == null) {
|
if (luceneMatchVersion == null) {
|
||||||
throw new SolrException
|
throw new SolrException(SolrException.ErrorCode.SERVER_ERROR,
|
||||||
( SolrException.ErrorCode.SERVER_ERROR,
|
|
||||||
"Configuration Error: Analyzer '" + clazz.getName() +
|
"Configuration Error: Analyzer '" + clazz.getName() +
|
||||||
"' needs a 'luceneMatchVersion' parameter");
|
"' needs a '" + IndexSchema.LUCENE_MATCH_VERSION_PARAM + "' parameter");
|
||||||
}
|
}
|
||||||
analyzer.setVersion(luceneMatchVersion);
|
analyzer.setVersion(luceneMatchVersion);
|
||||||
return analyzer;
|
return analyzer;
|
||||||
|
|
|
@ -35,6 +35,7 @@ import org.apache.lucene.search.similarities.Similarity;
|
||||||
import org.apache.solr.common.SolrDocumentList;
|
import org.apache.solr.common.SolrDocumentList;
|
||||||
import org.apache.solr.core.CoreContainer;
|
import org.apache.solr.core.CoreContainer;
|
||||||
import org.apache.solr.core.SolrCore;
|
import org.apache.solr.core.SolrCore;
|
||||||
|
import org.apache.solr.schema.IndexSchema;
|
||||||
import org.apache.solr.schema.SimilarityFactory;
|
import org.apache.solr.schema.SimilarityFactory;
|
||||||
import org.apache.solr.search.similarities.SchemaSimilarityFactory;
|
import org.apache.solr.search.similarities.SchemaSimilarityFactory;
|
||||||
import org.apache.solr.util.RESTfulServerProvider;
|
import org.apache.solr.util.RESTfulServerProvider;
|
||||||
|
@ -184,11 +185,13 @@ public class TestBulkSchemaAPI extends RestTestBase {
|
||||||
map = (Map) fromJSONString(response);
|
map = (Map) fromJSONString(response);
|
||||||
assertNull(response, map.get("error"));
|
assertNull(response, map.get("error"));
|
||||||
|
|
||||||
|
restTestHarness.checkAdminResponseStatus("/admin/cores?wt=xml&action=RELOAD&core=" + coreName, "0");
|
||||||
|
|
||||||
map = getObj(restTestHarness, "myNewTextFieldWithAnalyzerClass", "fieldTypes");
|
map = getObj(restTestHarness, "myNewTextFieldWithAnalyzerClass", "fieldTypes");
|
||||||
assertNotNull(map);
|
assertNotNull(map);
|
||||||
Map analyzer = (Map)map.get("analyzer");
|
Map analyzer = (Map)map.get("analyzer");
|
||||||
assertEquals("org.apache.lucene.analysis.core.WhitespaceAnalyzer", String.valueOf(analyzer.get("class")));
|
assertEquals("org.apache.lucene.analysis.core.WhitespaceAnalyzer", String.valueOf(analyzer.get("class")));
|
||||||
assertEquals("5.0.0", String.valueOf(analyzer.get("luceneMatchVersion")));
|
assertEquals("5.0.0", String.valueOf(analyzer.get(IndexSchema.LUCENE_MATCH_VERSION_PARAM)));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testAnalyzerByName() throws Exception {
|
public void testAnalyzerByName() throws Exception {
|
||||||
|
|
|
@ -622,6 +622,8 @@ public class SchemaTest extends RestTestBase {
|
||||||
SchemaResponse.UpdateResponse addFieldTypeResponse = addFieldTypeRequest.process(getSolrClient());
|
SchemaResponse.UpdateResponse addFieldTypeResponse = addFieldTypeRequest.process(getSolrClient());
|
||||||
assertValidSchemaResponse(addFieldTypeResponse);
|
assertValidSchemaResponse(addFieldTypeResponse);
|
||||||
|
|
||||||
|
restTestHarness.reload();
|
||||||
|
|
||||||
SchemaRequest.FieldType fieldTypeRequest = new SchemaRequest.FieldType(fieldTypeName);
|
SchemaRequest.FieldType fieldTypeRequest = new SchemaRequest.FieldType(fieldTypeName);
|
||||||
SchemaResponse.FieldTypeResponse newFieldTypeResponse = fieldTypeRequest.process(getSolrClient());
|
SchemaResponse.FieldTypeResponse newFieldTypeResponse = fieldTypeRequest.process(getSolrClient());
|
||||||
assertValidSchemaResponse(newFieldTypeResponse);
|
assertValidSchemaResponse(newFieldTypeResponse);
|
||||||
|
|
Loading…
Reference in New Issue