@a5635268
2016-02-15T18:27:14.000000Z
字数 4876
阅读 1131
PHP
solr
cd /usr/local/solr/solr
# 获得命令option
./bin/solr
# 获得option的帮助
./bin/solr start -help
# 启动服务(安装后默认启动的,默认是8983)
./solr start -p 8984
# 关闭服务
./solr stop -p 8984
# 创建集合
/usr/local/solr/solr/bin/solr create -c core1
# 或者通过solr用户的身份创建
su - solr -c "/usr/local/solr/solr/bin/solr create -c core1"
注意新版被solr本身就是一个单独的服务器,不需要另外依靠其他服务器;
instanceDir
{$instanceDir}/conf/solrconfig.xml
# 新增如下内容
<requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
<lst name="defaults">
<str name="config">data-config.xml</str>
</lst>
</requestHandler>
3 .新建 {$instanceDir}/conf/data-config.xml
,编辑如下内容
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/database_name" user="userName" password="passWord"/>
<document>
<entity name="check_lawyer" query="select id, name from tableName">
<field column="id" name="id" />
<field column="name" name="name" />
</entity>
</document>
</dataConfig>
注:上面的database_name是你创建的数据库名,userName是数据库用户名,passWord是数据库密码,tableName是你的表名,field区域当中的column对应数据库中的列,而name就是solr中显示的名称。
4. 编辑{$instanceDir}/conf/managed-schema
(老版本为schema.xml,也可以复制这个文件为schema.xml),然后再编辑添加在data-config.xml
中对应的字段信息,具体格式如下
<field name="对应data-config.xml字段的name" type="字段类型,注意这里的字段类型是solr中的字段类型,具体见里面的注释" indexed="该字段是否参与了搜索" stored="solr是否要存储该字段" required="是否必须的字段" />
5 . 将solr-dataimporthandler-5.2.1.jar从solr-5.2.1/dist/文件夹下copy到solr-5.2.1/server/solr-webapp/webapp/WEB-INF/lib当中,此java包是导入数据用的。
6. 从mysql官网中下载一个mysql-connector-java-5.1.35.zip压缩包,解压出一个mysql-connector-java-5.1.35-bin.jar包,将它copy到solr-5.2.1/server/lib下。
7. 重启solr,然后去管理台通过当前的core的Dataimport选项导入数据。
http://www.cnblogs.com/huangfox/p/4043262.html
solr的join查询:
blog.csdn.net/acmilanvanbasten/article/details/35804883
<?php
/**
* solr数据操作
* @author sunlibo
*/
class phpSolr{
//solr服务器地址及端口设置
private static $options = array (‘hostname’ => ‘192.168.12.210′,‘port’ => ‘8081’);
/**
* 设置solr库选择
* @param $core string 库名称
*/
public static function setCore($core){
if ($core)
self::$options[’path’]=‘solr /’.$core;
}
/**
* 增加solr索引
* @param $fieldArr 索引字段及值
* @return bool true
*/
public static function addDocument($fieldArr = array ()){
$client = new SolrClient(self::$options);
$doc = new SolrInputDocument();
foreach ($fieldArr as $k => $v) {
$doc->addField($k , $v);
}
$client->addDocument($doc);
$client->commit();
return true;
}
/**
* 删除索引
* @param $id 主键id id可以为数组形式,应用于多选的情况
* @return bool true
*/
public static function delDocument($ids){
$client = new SolrClient(self::$options);
if (is_array($ids))
$client->deleteByIds($ids); else
$client->deleteById($ids);
$client->commit();
return true;
}
/**
* 查询数据
* @param $qwhere 关键字
* @param $fqwhere 附加条件,根据范围检索,适用于数值型
* @param $getField 查询字段
* @param $sort 排序 array(‘duration’=>‘asc’) asc:升序,desc:降序
* @param $pageindex 查询页数
* @param $pagesize 每页显示条数
*/
public static function selectQuery($qwhere = array () , $fqwhere = array () , $getField = array () , $sort = array () , $pageindex = 1 , $pagesize = 20){
$client = new SolrClient(self::$options);
$query = new SolrQuery();
$sel = ”;
foreach ($qwhere as $k => $v) {
$sel .= ’ +’.$k .’:’.$v;
}
$query->setQuery($sel);
//关键字检索
//附加条件,根据范围检索,适用于数值型
if ($fqwhere) {
$query->setFacet(true);
foreach ($fqwhere as $k => $v)
$query->addFacetQuery($v);
//$query->addFacetQuery(‘price:[* TO 500]’);
}
//查询字段
if ($getField) {
foreach ($getField as $key => $val)
$query->addField($val);
}
//排序
if ($sort) {
foreach ($sort as $k => $v) {
if ($v == ‘asc’)
$query->addSortField($k , SolrQuery::ORDER_ASC);
elseif($v == ‘desc’)
$query->addSortField($k , SolrQuery::ORDER_DESC);
}
}
//分页
$query->setStart(self::getPageIndex($pageindex , $pagesize));
$query->setRows($pagesize);
$query_response = $client->query($query);
$response = $query_response->getResponse();
return $response;
}
/**
* 分页数据处理
*/
private static function getPageIndex($pageindex , $pagesize){
if ($pageindex <= 1)
$pageindex = 0; else
$pageindex = ($pageindex - 1) * $pagesize;
return $pageindex;
}
}
?>
Solr学习总结(四)Solr查询参数: http://www.cnblogs.com/zhangweizhong/p/5056884.html
solr:快速开始: http://www.cnblogs.com/zhoujg/p/5047644.html
使用Solr索引MySQL数据: http://www.cnblogs.com/luxiaoxun/p/4442770.html
Solr导入MySql中的数据: http://www.itnose.net/news/157/6310328
Solr之搭建Solr5.2.1服务并从Mysql上导入数据:http://www.cnblogs.com/luxh/p/5021396.html
Solr整合Ansj中文分词器: http://www.cnblogs.com/luxh/p/5017336.html
Solr基础理论与维护管理快速上手(含查询参数说明):http://www.cnblogs.com/fengh/p/4775286.html
Solr的随机排序 【转载】:http://www.cnblogs.com/fengh/p/4775269.html
SOLR配置IK分词器: http://www.cnblogs.com/liaidai/p/4899075.html
SOLR对多个(关联)表创建索引:http://www.cnblogs.com/liaidai/p/4906714.html
Solr数据库连接之多表关联: http://www.cnblogs.com/fengh/p/4810879.html
SOLR增量索引--删除业务、定时增量索引: http://www.cnblogs.com/liaidai/p/4896166.html
Solr:Schema设计: http://www.cnblogs.com/zhoujg/p/5053789.html
solrPHP手册: http://php.net/manual/en/class.solrinputdocument.php
http://www.ibm.com/developerworks/cn/opensource/os-php-apachesolr/
使用Solr索引MySQL数据 http://www.cnblogs.com/luxiaoxun/p/4442770.html
Solr实现SQL的查询与统计: http://shiyanjun.cn/archives/78.html