环境说明:

操作系统:由于是使用的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= -m localhost: -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中插入数据测试一下

solr搜索引擎配置使用mongodb作为数据源的更多相关文章

  1. Solr搜索引擎 — 通过mysql配置数据源

    一,准备数据库数据表结构 CREATE TABLE `app` ( `id` int(11) NOT NULL AUTO_INCREMENT, `app_name` varchar(255) NOT ...

  2. Lucene/Solr搜索引擎开发笔记 - 第1章 Solr安装与部署(Jetty篇)

    一.为何开博客写<Lucene/Solr搜索引擎开发笔记> 本人毕业于2011年,2011-2014的三年时间里,在深圳前50强企业工作,从事工业控制领域的机器视觉方向,主要使用语言为C/ ...

  3. Lucene/Solr搜索引擎开发笔记 - 第2章 Solr安装与部署(Tomcat篇)

    一.安装环境 图1-1 Tomcat和Solr的版本 我本机目前使用的Java版本为JDK 1.8,因为Solr 4.9要求Java版本为1.7+,请注意. 二.Solr部署到Tomcat流程 图1- ...

  4. Solr搜索引擎搭建详细过程

    1    什么是solr Solr 是Apache下的一个顶级开源项目,采用Java开发,它是基于Lucene的全文搜索服务器.Solr可以独立运行在Jetty.Tomcat等这些Servlet容器中 ...

  5. Django haystack+solr搜索引擎部署的坑.

    跟着<<Django by Example>> 一路做下来,到了搭建搜索引擎的步骤 默认的思路是用 obj.objects.filter(body__icontains='fr ...

  6. PHP-从零开始使用Solr搜索引擎服务(上)

    前言: 原文地址: http://www.cnblogs.com/JimmyBright/p/7156069.html 使用搜索引擎,我们常规的数据查询会快很多,还可以对关键词进行中文分词查询,返回一 ...

  7. Solr搜索引擎服务器学习笔记

    Solr简介 采用Java5开发,基于Lucene的全文搜索服务器.同时对其进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置.可扩展并对查询性能进行了优化,并且提供了一个完善的功能 ...

  8. solr多核配置

    假设已经配置好了一个单core的solr服务器. solr.xml配置文件 单核和多核主要在solr.xml配置不同.在solr/example中已经有一个名称为multicore的文件夹里面给我们配 ...

  9. Spring 数据源配置二:多数据源

    通过上一节  Spring 数据源配置一: 单一数据源  我们了解单一数据源的配置, 这里我们继续多个数据源的配置 如下(applicationContent.xml 内容) 一:  Spring   ...

随机推荐

  1. 【译】使用 ndb 调试 node 应用

    原文链接:Debugging Node.js Application Using ndb Google Chrome 实验室发布了一款新的 node debug 工具来提升开发者体验,本文将会全面介绍 ...

  2. HDU 5517---Triple(二维树状数组)

    题目链接 Problem Description Given the finite multi-set A of n pairs of integers, an another finite mult ...

  3. Kaggle项目实战一:Titanic: Machine Learning from Disaster

    项目地址 https://www.kaggle.com/c/titanic 项目介绍: 除了乘客的编号以外,还包括下表中10个字段,构成了数据的所有特征 Variable Definition Key ...

  4. vue脚手架构

    我们是用Eclipse开发的,所以用vue开始时,要进行代理,不然访问不到服务器,所以就需要配置一下 dev  context 里面写的是代理的接口,就是以这些接口开头的,如果没有就往里写一下,pro ...

  5. SqlServer 循环建表、删除表、更新表

    常用于分库分表 1.批量删除 declare @outter int declare @inner int ) ) ) begin set @tablePrefix='BankPayOrder_'+c ...

  6. Pthon常用模块之requests,urllib和re

    urllib Python标准库中提供了:urllib等模块以供Http请求,但是,它的 API 太渣了. 它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务, 下面是简单的使用urllib来 ...

  7. postgresql 获取修改列的值

    使用returning CREATE TABLE users (firstname text, lastname text, id serial primary key); INSERT INTO u ...

  8. TkMyBatis大杂烩

    1. 什么是TkMyBatis TkMyBatis是一个MyBatis的通用Mapper工具 2. 引入TkMyBatis到SpringBoot项目 以Gradle为例 compile 'tk.myb ...

  9. EIGRP路由协议的简单理解及应用

    1.EIGRP 增强型内部网关路由协议 他是动态路由协议,是思科私有的路由协议(2013年已经公有化) 特点:   1)路由更新:闪速更新:触发式更新:路由增量更新 2)协议更新采用组播地址来维持EI ...

  10. GTest的安装与使用

    安装GTest 1.安装源代码 下载gtest,release-1.8.0 git clone https://github.com/google/googletest gtest编译 cd goog ...