solr安装与配置

下载

下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/7.5.0

下载后直接解压。

配置

创建新core

进入解压后目录(后面有~/solr-root/代替),进入~/solr-root/server/solr/,新建目录,目录名自己随便定义,我定义的是test_core,然后将~/solr-root/server/solr/configsets/_default/目录中的conf目录复制到刚才新建的test_core中。

data-config.xml

新建data-config.xml文件,然后将下面内容写入文件中。



    
    
        
            
            
            
            
            
        
    

说明:
emails是库名,下面几个field定义的就是select出来的那几个字段。

solrconfig.xml

编辑solrconfig.xml文件,搜索“requestHandler”,讲下面代码加入并列的requestHandler配置块中:


    
        data-config.xml
    

managed-schema

编辑managed-schema文件,保留一下三个field:



编辑其它field,跟data-config.xml文件中的field对应:





下载数据库链接库

下载地址:http://central.maven.org/maven2/mysql/mysql-connector-java/8.0.11/mysql-connector-java-8.0.11.jar

将刚才现在的mysql-connector-java-8.0.11.jar 和~/solr-root/dist 目录下的
solr-dataimporthandler-extras-7.5.0.jar 、solr-dataimporthandler-7.5.0.jar
这三个jar包一起拷贝到~/solr-root/server/solr-webapp/webapp/WEB-INF/lib目录下

启动solr

执行启动命令:

./~/solr-root/bin/solr start

启动后访问:127.0.0.1:8983,显示如下界面:
php操作solr7.5通过mysql导入的数据_第1张图片

导入mysql数据

选择刚才新建的test_core。
php操作solr7.5通过mysql导入的数据_第2张图片
php操作solr7.5通过mysql导入的数据_第3张图片
执行完成后:
php操作solr7.5通过mysql导入的数据_第4张图片

测试

php操作solr7.5通过mysql导入的数据_第5张图片

PHP操作solr

安装solr扩展。

php操作solr7.5通过mysql导入的数据

查询

直接通过curl访问类似下面的url即可:
php操作solr7.5通过mysql导入的数据_第6张图片

增加数据

$client = new \SolrClient($options);
$data = array(
        array(
                'id' => 'EN80922032',
                'name' => '男士打磨直筒休闲牛仔裤',
                'brand' => 'ENERGIE',
                'cat' => '牛仔裤',
                'price' => '1870.00'
        ),
        array(
                'id' => 'EN70906025',
                'name' => '品牌LOGO翻领拉链外套',
                'brand' => 'ENERGIE',
                'cat' => '外套',
                'price' => '1680.00'
        ),
        //自定义数据。。。
);

foreach($data as $key => $value) {
        $doc = new \SolrInputDocument();
        foreach($value as $key2 =>$value2) {
                $doc->addField($key2,$value2);
        }
        $client->addDocument($doc);

}
$client->commit();die;