我们要配置一个项目,例如,叫QuestionBank,用于试题查询。则需要做以下的步骤:
1、在E:\Solr\solr-8.2.0\server\solr目录下新建一个文件夹,叫QuestionBank
2、从E:\Solr\solr-8.2.0\server\solr\configsets\_default目录中复制默认配置文件夹至我们刚刚创建的文件夹E:\Solr\solr-8.2.0\server\solr\QuestionBank中
3、浏览器访问http://localhost:8985/solr ,在Core Admin选项中创建Core,其中name和instanceDir都与我们刚刚创建的文件名字相同,叫QuestionBank。
4、打开我们刚刚创建的QuestionBank,可以进行查询
当前我们的Solr中还没有数据,接下来我们配置数据类型和录入数据。
5、配置数据类型
方法(一):在Web中Add Field,此方法直观,简单。但是,因为没有int等类型,也不够快捷。我们使用方法二
方法(二)
(1)打开E:\Solr\solr-8.2.0\server\solr\QuestionBank\conf下的managed-schema 文件,使用记事本等工具打开
(2)根据我数据库的类型,我需要以下字段及类型
修改字段id为ID,并新增如下字段
<field name="QuestionGuid" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="ID" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="SubjectID" type="int" indexed="true" stored="true" multiValued="false" />
<field name="KnowledgeID" type="int" indexed="true" stored="true" multiValued="false" />
<field name="TypesID" type="int" indexed="true" stored="true" multiValued="false" />
<field name="DifficultyID" type="int" indexed="true" stored="true" multiValued="false" />
<field name="SearchContent" type="string" indexed="true" stored="true" />
<field name="Content" type="string" stored="true" />
(3)将<uniqueKey>id</uniqueKey>修改为<uniqueKey>QuestionGuid</uniqueKey>
(4)删除以下我们暂时用不到的字段:
<field name="_nest_path_" type="_nest_path_"/>
<field name="_root_" type="string" docValues="false" indexed="true" stored="false"/>
<field name="_text_" type="text_general" multiValued="true" indexed="true" stored="false"/>
(5)新增字段类型
<fieldType name="double" class="solr.TrieDoubleField" positionIncrementGap="0" docValues="true" precisionStep="0"/>
<fieldType name="doubles" class="solr.TrieDoubleField" positionIncrementGap="0" docValues="true" multiValued="true" precisionStep="0"/>
<fieldType name="float" class="solr.TrieFloatField" positionIncrementGap="0" docValues="true" precisionStep="0"/>
<fieldType name="floats" class="solr.TrieFloatField" positionIncrementGap="0" docValues="true" multiValued="true" precisionStep="0"/>
<fieldType name="int" class="solr.TrieIntField" positionIncrementGap="0" docValues="true" precisionStep="0"/>
<fieldType name="ints" class="solr.TrieIntField" positionIncrementGap="0" docValues="true" multiValued="true" precisionStep="0"/>
(5)保存,并重启solr。重要!!一定要重启。重启命令:solr restart -p 8985
如果不重启solr,直接导入下面的数据,则可能solr会自动覆盖我们刚刚编辑的managed-schema 文件,导致我们刚刚进行的设置无效。如果不小写被覆盖了,请重新进行刚刚那字段的配置。
6、简易的写入一些数据
{"ID":2,"SubjectID":1,"KnowledgeID":258,"TypesID":15,"DifficultyID":3,"Content":"<p>局域网中以太网采用的通信协议是<u> </u>。</p>","SearchContent":"局域网中以太网采用的通信协议是。"},
{"ID":3,"SubjectID":1,"KnowledgeID":257,"TypesID":15,"DifficultyID":2,"Content":"<p>信息技术就是计算机技术( )</p>","SearchContent":"信息技术就是计算机技术( )"}
7、再去进行查询,可以看到我们插入的数据