@a5635268
2016-02-15T10:27:14.000000Z
字数 4876
阅读 1276
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