vi schema.xml
<field name="content" type="text" stored="true" indexed="true"/>
将stroed的值由false改为true
solr启动需要以下过程:
- 获取SolrHome:分别先后通过JNDI,System property,default directory三种方式尝试获取
- 实例化启动过程中使用的类加载器SolrResourceLoader
- 加载solrhome下的solr.xml文件,封装为ConfigSolr
- 实例化一个CoreContainer,通过CoreContainer来加载cores
- 遍历SolrHome,当寻找到含有core.properties的文件夹,则作为一个core
- 多线程加载cores
- 加载每个core时先加载solrconfig.xml封装为SolrConfig
- 再加载schema.xml封装为IndexSchema
- 最后实例化SolrCore
1 . 获取SolrHome信息
Solr通过三种方式来获取SolrHome,分别是JNDI,System property,以及当前路径。
- JNDI的java:comp/env/solr/home的获取,主要通过在tomcat/conf/Catalina/localhost目录下新建solr.xml。Tomcat启动的时候就会该目录下自动获取SolrHome的信息.
- System property的SolrHome获取是直接在tomcat启动脚本catalina.sh中加入set JAVA_OPTS
Dsolr.solr.home=/Users/rcf/workspace/java/solr 。 - 最后的获取SolrHome的方式就是在当前目录下查找
获取完SolrHome后,就会实例化SolrResourceLoader。因为传进去的parent是null,所以parents是ContextClassLoader,并且加载了SolrHome/lib/下的文件