天天看点

solr7安装(1)

solr7

安装

我选了7.4.0最新的,

网上还有很多人用5或者6的,因为分词不支持什么的,其实是支持的,都有了。

另外不同版本确实安装步骤不是完全一样。

  • 下载和配置 tomcat和jdk

  • 配置

    1、解压 solr-7.4.0.tgz 换个名字叫solr7

2、将server/solr-webapp/webapp 重新命名solr,并复制到tomcat/webapps下面

3、tomcat/webapps/solr/WEB-INF 下建立一个文件夹 classes

4、新建一个文件夹,不要中文目录,用来做solrHome,也就是solrCore的实例存放位置,我就建在solr7下面

mkdir solr_home

5、tomcat/webapp/solr/WEB-INF/web.xml 配置solr/home 吧注释去掉,然后路径改掉

<env-entry>
       <env-entry-name>solr/home</env-entry-name>
       <env-entry-value>/usr/local/api/solr7/solr_home</env-entry-value>
       <env-entry-type>java.lang.String</env-entry-type>
    </env-entry>           

6、 复制server/resource/log4j.properties 到刚刚建立的classes 文件夹

其实是log4j2.xml

7、把solr7/server/lib/ext/ 下的jar包复制到tomcat/webbapps/solr/WEB-INF/lib/中

8、把solr7/dist下面的jar包也复制过去

9、solr7/server/lib下面的metrics开头的也复制过去

10、将 /webapps/solr/WEB-INF 下面的 web.xml 最尾巴上的

好了,启动tomcat ,(别忘了可能要改端口)

浏览器打开

http://127.0.0.1:8080/solr/admin.html

如果没权限,是security-constraint 没有删的原因

点击【core admin 】

添加一个core ,我就默认new_core

在solr7/solr_home 下新建 new_core (solr自己建的,不需要自己mkdir)

会报找不到solrconfig.xml ,下一步帮你找到

11、把solr7/server/solr/configsets/sample_techproducts_configs/conf/ 复制到 solr7/solr_home/new_core

(solr_home下面也有configsets,复制带过来的)

好了,现在回报找不到elevate.xml

这个文件在new_core里面,放到conf或者data里面(conf并没有,就放data下)

12、solr7/server/solr/solr.xml 复制到solr7/solr_home下

【重启】tomcat

应该没有报错了

分词

https://github.com/magese/ik-analyzer-solr7

自己maven打包 成 ik-analyzer-solr7-7.x.jar

tomcat/webapp/solr/WEB-INF/lib里面。

(千万不要复制到tomcat/lib中,这样会找不到lucene的类)

添加 vi solr7/solr_home/new_core/core1/conf/managed-schema 尾巴上

<fieldType name="text_ik" class="solr.TextField">
        <analyzer type="index" useSmart="false"
            class="org.wltea.analyzer.lucene.IKAnalyzer" />
        <analyzer type="query" useSmart="true"
            class="org.wltea.analyzer.lucene.IKAnalyzer" />
    </fieldType>           

页面咋操作,见

https://www.cnblogs.com/zhuxiaojie/p/5764680.html

我就不贴图了

域的定义 field

具体使用和语法,看其他blog,这边不再复制一遍

但是我困惑了很久,到底是个啥东西,title就可以,title1就不行,我也没配过,

后来发现managed-schema (老版本schema.xml) 预设了很多字段

id,name,context。。。。。很多

title1 不行,是因配置文件里面没有,-_-||

dataimport 数据库

mysql-connector-java-5.1.42.jar 放到

/usr/local/api/tomcat8-10080-solr/webapps/solr/WEB-INF/lib

还有solr/dist/ 下面的solr-dataimporthandler-7.4.0.jar 也放过去

<requestHandler name="/dataimport" class="solr.DataImportHandler">
      <lst name="defaults">
            <str name="config">data-config.xml</str>
      </lst>
  </requestHandler>           
<dataConfig>
    <!-- 这是mysql的配置,学会jdbc的都应该看得懂 -->
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solr/useUnicode=true&amp;characterEncoding=utf-8" user="bbtang" password="bbtang"/>
    <document>
        <!-- name属性,就代表着一个文档,可以随便命名 -->
        <!-- query是一条sql,代表在数据库查找出来的数据 -->
        <entity name="product" query="select * from products">
            <!-- 每一个field映射着数据库中列与文档中的域,column是数据库列,name是solr的域(必须是在
            **managed-schema**文件中配置过的域才行) -->
            <field column="pid" name="id"/>
            <field column="name" name="product_name"/>
            <field column="catalog" name="product_catalog"/>
            <field column="catalog_name" name="product_catalog_name"/>
            <field column="price" name="product_price"/>
            <field column="description" name="product_description"/>
            <field column="picture" name="product_picture"/>
        </entity>
    </document>
</dataConfig>

           

ps: xml里面 &要写成

&amp;