环境说明:

操作系统:由于是使用的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. Python内置类型(5)--迭代器类型

    指能够被内置函数next调用并不断返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值的对象称为迭代器(Iterator) 其实以上的说法只是侠义上的迭代器的定义,在pyt ...

  2. odoo开发笔记 -- 后台日志输出及分析

    odoo开发笔记 -- 后台日志输出及分析 附:日志分析软件

  3. 【NGINX】配置文件

    ######Nginx配置文件nginx.conf中文详解##### #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_ ...

  4. MongoDB框架Jongo的使用介绍

    1.Jongo可以用来做什么?   Jongo框架的目的是使在MongoDB中可以直接使用的查询Shell可以直接在Java中使用.在官网首页有一个非常简洁的例子:   SHELL:这种查询方式是Mo ...

  5. 模拟HTTP协议接收请求并返回信息

    private string HttpPost(string Url, string postDataStr) { HttpWebRequest request = (HttpWebRequest)W ...

  6. vb.net 日期時間

    Dim dMyDate As DateTime = DateTime.Now‘當前時間日期 DateDiff("h", C13, C3)’ 二時間差 ‘日期格式 C2 = Form ...

  7. Web前端基础——jQuery(二)

    一.jQuery 中的常用函数 1) $.map(Array,fn); 对数组中的每个元素,都用fn进行处理,fn将处理后的结果返回,最后得到一个数组 //因为这些操作,没有与dom元素相关的,所以可 ...

  8. ELK日志分析平台系统CentOS7环境搭建和基本使用

    一.搭建环境 系统环境:CentOS7 安装iptables:https://blog.csdn.net/momo_mutou/article/details/81739155 jdk1.8:  ht ...

  9. MVC中的HtmlHelper详解

    熟悉MVC开发的朋友都应该知道在MVC中,每一个Controller都对应一个View,并且CS文件和对应的ASPX文件也被分离了,更重要的是不再有服务器端控件在工具箱中,不再是代码后至了.MVC中的 ...

  10. 微信小程序开发BUG经验总结

    摘要: 常见的微信小程序BUG! 小程序开发越来越热,开发中遇到各种各样的bug,在此总结了一些比较容易掉进去的坑分享给大家. 1. new Date跨平台兼容性问题 在Andriod使用new Da ...