学习solr有感(第二期 后面不知道还会不会有,至少项目还没做完呢)
首先,先感慨一下……很多东西不光看攻略,还要自己不断的实验,实践。最后,才能得到自己想要的东西
就在上周,终于吭哧瘪肚、费劲巴拉的把solr的基础服务器架设好了,接下来就是数据库以及服务器的接入。
这对于我这个菜鸡来说又是一个难点。
首先,我查看的所有攻略,他们都有一个共同的特点,那就是mysql的数据库,而现在公司的项目使用的是oracle的数据库,这就导致我要自己去翻找jdbc的jar包,还要对照好数据库的版本。
处理完这些,第二个难点又来了。
按照网上的攻略,配置schema.xml文件的时候,根本不需要考虑任何事情
<field name="loginname" type="long" indexed="true" stored="true" multiValued="false" />
<field name="nickname" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="registerdate" type="date" indexed="true" stored="true" multiValued="false" />
<field name="newsname" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="releaseowner" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="information1" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="addrprovince" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="addrcity" type="text_ik" indexed="true" stored="true" multiValued="false" />
<field name="addrcounty" type="text_ik" indexed="true" stored="true" multiValued="false" />
直接这样扔进去就可以了(滑稽),如果你真的直接这样扔进去,那你会很幸运的发现各种难以言喻的bug……
因为,在攻略当中修改schema.xml之前,还需要配置一个date-config.xml,而在这里就是一个分歧点。
https://blog.csdn.net/cs_hnu_scw/article/details/79388080
https://blog.csdn.net/clj198606061111/article/details/21299241
https://www.cnblogs.com/xuyiqing/p/8707966.html
这三篇攻略当中对于date-config.xml里面都有一定的不同,但最根本的不同是这样的
我仅仅是在releaseowner前面添加了一个news_的前缀用来区分,结果就变成下面这样了
我修改过的那个字段不见了,而我修改前是这样的
后来我查了很多的攻略以及问题才发现,你在date-config.xml里面的query语句(也就是查询语句)中的字段如果没有对应起来,那你在使用搜索引擎的话,很可能会像这样丢掉几个字段,导致想要查询的时候缺失一些东西,这非常尴尬的!
还有一个问题,我现在已经没法复现了……因为,我忘了它是怎么消失的。
但它叫什么我还记得很清楚!
missing required field:
这个错误代码,这个错误代码还不会导致你服务器启动失败,只会导致你写在sql当中的字段丢失。
好像跟< field >的位置有关,我也没有具体尝试。