zoukankan      html  css  js  c++  java
  • solr搜索引擎配置使用mongodb作为数据源

    环境说明:

    操作系统:由于是使用的docker直接拉取的镜像部署的,系统是LINUX环境

    mongodb: 4.0.3

    solr: 7.5.0

    python: 3.5

    配置mongodb

    1.拉取mongodb镜像,创建容器;

      这里我使用的是docker容器管理UI进行操作的,强烈推荐portainer,确实好用;登陆后台管理界面后,直接点击App Templates,找到mongo,点击进去就是配置了。这里有一点说明,最好点击show advanced options配置一个固定端口;

    2.配置容器  

        点击已部署配置好的容器,选择Duplicate/Edit按钮,配置端口,我配置的是28766,在Command处,修改成/bin/sh,把Entry Point留空,这是因为拉取的镜像模板是配置好默认启动的,如果这里不清空,就直接启动了,再去里面处理的时候会有一些麻烦。如下图:

    记得将端口暴露。勾上下图那个

    完成之后,点击Deploy the container,启动容器

    3.点击console,进入到容器的shell中,输入  apt-get update 进行升级,完成之后安装python环境和pip

    apt-get update
    apt-get install python3
    aptapt-get install python3-pip

        安装python环境是因为mongo-connector是基于python运行的。

    4.安装mongo-connector

    pip3 install 'mongo-connector[solr]'

    5.将mongodb设置为指定副本启动,&表示在后台运行,(如果不加上前面那段,是连接不上的,非docker部署的请忽略前面那段sh)

    /usr/local/bin/docker-entrypoint.sh mongod --replSet my_demo&

    6.初始化mongodb

    mongo
    rs.initiate()

    至此,mongodb环境已配置完成。我们可以使用连接工具测试一下是否正常。

    配置solr

    1.拉取镜像,创建容器并启动;

    2.创建一个solr core

    solr create -c my_demo

    3.打开浏览器,输入solr管理的URL地址,http://192.168.1.60:8983/solr/(即ip:solr运行的端口)打开solr管理界面

    4.将schema.xml和solrconfig拷贝出来(这个是在安装docker的主机上运行,主要是容器中不好配置,无界面,如果不是使用的docker,可以在对应的路径内找到这俩个文件)

    sudo docker cp d0547a1ed6cfb260f4ca4f4e4c2c140fdb99421b75b5155e735b45a075a1c150:./opt/solr/server/solr/my_demo/conf/solrconfig.xml ./solrconfig.xml 
    sudo docker cp d0547a1ed6cfb260f4ca4f4e4c2c140fdb99421b75b5155e735b45a075a1c150:./opt/solr/server/solr/my_demo/conf/managed-schema ./schema.xml

    其中  d0547a1ed6cfb260f4ca4f4e4c2c140fdb99421b75b5155e735b45a075a1c150 是容器的id,换成自己的容器id即可

    5.在solrconfig.xml中添加

    <requestHandler name="/admin/luke" class="org.apache.solr.handler.admin.LukeRequestHandler" />

    6.在schema.xml中配置数据结构

    <field name="title" type="string" indexed="false" stored="true"/>
    <field name="content" type="text_general" indexed="false" stored="true"/>

    7.将文件拷贝回solr目录下

    sudo docker cp ./solrconfig.xml 3ed272a8ed088675dab8c6fab9335a6aedf7dcef9d73ed3a9d922f315be6f572:./opt/solr/server/solr/my_demo/conf/solrconfig.xml 
    sudo docker cp ./schema.xml 3ed272a8ed088675dab8c6fab9335a6aedf7dcef9d73ed3a9d922f315be6f572:./opt/solr/server/solr/my_demo/conf/schema.xml

    8.登陆solr管理端,点击 core Admin->my_demo,点击reload重新加载,然后在下面选择 my_demo->schema,进行查看是否修改,如果修改成功的话,这里会显示已经修改后的schema。在这一步时有一点需要注意,因为my_demo新建时,并没有schema.xml这个文件,有的是managed-schema这个文件,在这一步操作之前,要删除managed-schema,或者将其改名为schema.xml,否则是一直读取的managed-schema这个文件

     至此,solr也就配置完成了。

    在mongodb容器中运行 mongo-connector

    mongo-connector --auto-commit-interval=0 -m localhost:27017 -t http://192.168.1.60:8983/solr/my_demo -d solr_doc_manager

    其中格式为 

    mongo-connector -m <mongodb server hostname>:<replica set port> 
                    -t <replication endpoint URL, e.g. http://localhost:8983/solr> 
                    -d <name of doc manager, e.g., solr_doc_manager>
              -n <collection e.g. db.collection>
    my_demo是刚才建的solr core,

    在mongodb中插入数据测试一下


  • 相关阅读:
    [转]C++中cin、cin.get()、cin.getline()、getline()函数的简单总结
    Assert 的用法
    [转]C/C++作用域详解
    C++ 的getline问题
    字符数组的定义与赋值
    [转] 字符数组的赋值
    [转]标准C++中的string类的用法总结
    [转]memmove、memcpy和memccpy
    关于变长数组的一点小想法-C语言定义数组但是数组长度不确定怎么办
    Java动态代理演变之路
  • 原文地址:https://www.cnblogs.com/flyingaway/p/9882336.html
Copyright © 2011-2022 走看看