布署完成后,接下来要更深入的研究solr的原理和使用。
首先进入testcore这个文件夹下面,发现这个core的conf里并没有schema.xml。那么数据格式是在哪里定义的呢?
打开 solr_home/testcore/conf/solrconfig.xml,会发现里边有这样一段话。
这段话的大概意思:
如果要禁用 dynamic schema 的 rest API,可以通过使用如下配置实现:<schemaFactory class="ClassicIndexSchemaFactory"/>。
如果使用的是 ManagedIndexSchemaFactory,那么solr将会从managedSchemaResourceName定义的资源文件中去加载schema,而不是从schema.xml中加载。如果指定的资源文件不存在,那么solr将会先读取schema.xml,然后创建这个资源文件,再把schema.xml重命名成schema.xml.bak。
不要手工修改 managed schema-外部修改会被忽略,后面的意思没太看懂
当指定 ManagedIndexSchemaFactory ,并且 mutable=true时,可以通过rest API来修改schema;其他情况下,调用 rest API来修改schema会返回错误。
通过这段话可以知道,如果想让solr加载 schema.xml,只需要把solrconfig.xml中的schemaFactory配置成ClassicIndexSchemaFactory即可。