博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Solr安装配置
阅读量:7165 次
发布时间:2019-06-29

本文共 1919 字,大约阅读时间需要 6 分钟。

  hot3.png

一、安装solr
1、下载solr4.3.0(我的环境已经安装好java)
2、移动文件到/usr/local/然后解压
3、进入/usr/local/solr-4.3.0/example/执行
java -jar start.jar
4、浏览器输入192.168.1.250:8983/solr/admin(我安装在内网192.168.1.250虚拟机上):

5、建立索引。新建一个test.xml文件(我在/home/html/下新建的),内容如下:

21345
my name
在 /usr/local/solr-4.3.0/example/exampledocs/下执行:
java -jar post.jar /home/html/test.xml
6、查询
二、配置IK分词库
1、下载IK,解压,将其中的jar文件移动到/usr/local/solr-4.3.0/example/solr-webapp/webapp/WEB-INF/lib下

2、配置schema.xml文件
文件位置:
在众多fieldType当中添加一条

当建立索引时,要对name字段进行分词,在schema.xml中搜索<fields>,将其中的name字段设置:
改为:
type的内容即上面刚设置的一个fieldType-text_ik。当建立索引的时候,name字段将按IK进行分词。
3、重新启动

三、其他

1、如果某个字段我需要存入数组格式的数据
在schema.xml文件中的<fields></fields>标签里的<field>字段加上mutiValued="true":
2、使用solr客户端库,推荐Solarium
地址:
因为我使用的是Thinkphp框架,所以将solarium扩展库放到了Extend/Vendor/下,程序里:

public function query(){	vendor('Solarium.Autoloader');	Solarium_Autoloader::register();	$client = new Solarium_Client(C('SOLARIUM'));	$query = $client->createSelect();	$query->setQuery('name:这是记录');	$query->setStart(0)->setRows(20);	$query->setFields(array('id', 'name', 'price'));	$query->addSort('price', Solarium_Query_Select::SORT_ASC);	$hl = $query->getHighlighting();	$hl->setFields('name');	$hl->setSimplePrefix('');	$hl->setSimplePostfix('');	$resultset = $client->select($query);	$highlighting = $resultset->getHighlighting();	foreach ($resultset as $document) {		echo '

'; foreach ($document AS $field => $value) { if(is_array($value)) $value = implode(', ', $value); echo '
'; } echo '
' . $field . ' ' . $value . '
Highlighting results:
'; $highlightedDoc = $highlighting->getResult($document->id); if($highlightedDoc){ foreach($highlightedDoc as $field => $highlight) { echo implode(' (...) ', $highlight) . '
'; } } }}
运行的结果:
参考:

转载于:https://my.oschina.net/caoge/blog/132867

你可能感兴趣的文章