1.单条的添加索引,通过代码
// 添加一条数据
public static void addDoc() throws SolrServerException,IOException {// 得到请求
SolrClient sc = getSolrClient();
// 拼装文本
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", 100242);
doc.addField("name", "尹鹏飞");
doc.addField("gender", "男");
sc.add(doc);
sc.commit();
}
这里的url是你的solr服务器的路径
private static final String url = "http://localhost:8088/solr/new_core";
public static SolrClient getSolrClient() {
//solr的服务器端路径配置在project.properties文件中的project.solr.url里
// return new HttpSolrClient(CenConf.getInstance().getProperty("project.solr.url"));
return new HttpSolrClient(url);
}
2.当solr搭建成功后,创建自己的实例,Core Admin--->add Core
<1>创建自己的实例后,点击 dataimport ,然后右边有一个Configuration,里面是你查询数据库后,需要做索引的
添加索引的工作就已经做完了,勾选这几个红框框,然后点击execute执行这个地方可以配置你需要查询的数据库,表可以是链表查询。<?xml version="1.0" encoding="UTF-8" ?> <dataConfig> <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.0.100:3306/talent?characterEncoding=utf-8" user="root" password="root" /> <document name="document"> <entity name="person" query="SELECT * from person "> <field column="id" name="id" /> <field column="name" name="name" />
<entity name="user" query="SELECT * from user where personId = '${
person
.id}'">
<field column="userid" name="username" />
<field column="password" name="password" />
</entity></entity>
</document>
</dataConfig>
到这里,添加索引的都已经完事了,如果在导入的途中,你的solr的tomcat报错,那估计是你的内存挂了,或者数据库连接关了,这个时候,你可以增大你的solr的tomcat的jvm参数,调大一点就可以了
-Xms128m -Xmx800m -XX:PermSize=64M -XX:MaxNewSize=256m -XX:MaxPermSize=128m
-Djava.awt.headless=true
这里对应的参数都可以进行合理的设置
这里多说点,data-config.xml里面设置的<field>要添加到managed-schema文件中,我的solr是6.4.2版本。可以通过管理端来操作:点击左侧的 Schema 然后add field
也就是说data-config.xml需要创建的索引必须在Schema里面有。设置完毕后,把managed-schema 改成
schema
.xml