一、安装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中搜索,将其中的name字段设置:
改为:
type的内容即上面刚设置的一个fieldType-text_ik。当建立索引的时候,name字段将按IK进行分词。
3、重新启动
三、其他
1、如果某个字段我需要存入数组格式的数据
在schema.xml文件中的标签里的字段加上mutiValued="true":
2、使用solr客户端库,推荐Solarium
地址:http://www.solarium-project.org/
因为我使用的是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 '
' . $field . '' . $value . '';}
echo '
Highlighting results:';
$highlightedDoc = $highlighting->getResult($document->id);
if($highlightedDoc){
foreach($highlightedDoc as $field => $highlight) {
echo implode(' (...) ', $highlight) . '
';
}
}
}
} 运行的结果:
参考:
http://blog.csdn.net/chenjia3615349/article/details/8112289