说到搜索引擎,相信大部分朋友都认为谷歌比百度好用,但有时也被迫用百度搜索。毕竟,出于众所周知的原因,如果您不想这样做,Google 就无法使用它。其他搜索引擎如必应、搜狗、360等,都有自己的阵营和特色。例如,搜狗支持在微信中搜索内容,例如公众号上的文章。
当然,除了以上主流搜索引擎之外,其实还有一些小众搜索引擎,比如:基于智能AI技术的Magi、专注于隐私的DuckDuckGo等等……
搬砖的时候小编会用谷歌。回家后,我经常选择使用微软的必应搜索引擎来搜索内容。有时我找不到满意的结果,所以我用百度作为备用搜索。
有没有一个搜索引擎可以将所有搜索引擎的搜索结果智能聚合在一起?是的,必须安排!最近小编发现了一个免费的开源项目searX,可以完美解决大家的搜索痛点!
searX简介
searX 是一个基于 Python 的完全开源的免费搜索引擎平台,可以提供来自 Google、Bing、Yahoo 等 70 多个搜索服务的结果,包括:文档、图片、地图、音乐、新闻、学术、社交、视频、磁力等。展示网站结果,优化搜索结果。同时,它不会存储您的任何搜索信息。它是一个完全免费的开源搜索引擎平台,尊重隐私。
而且,这个搜索引擎平台部署起来也很方便。基本上,构建一个完全自己的搜索引擎只需要四个步骤。有兴趣的可以搭建一个,为广大网友提供方便。如果你不感兴趣,让我介绍一下 searX。也许你会喜欢它!
用 searX 搜索
如果你想体验searX搜索,可以到这个合集页面:searX Portal →,汇集了searX部署的所有可用搜索引擎网站,你可以任意选择使用!
让我们用searX搜索小编试试吧。搜索小编就是最好的解释这个问题,因为普通的搜索引擎实在是找不到我们的小网站,比如搜狗、百度、searX等基本上都是自带搜索出来的,而且速度非常快!什么都找不到的搜索引擎不是一个好的搜索引擎!
searX会从搜索结果中整合所有设置的搜索引擎经过去重过滤后找到的内容,然后进行优先排序,最终呈现在一个页面上。整个搜索页面也非常清爽,支持查看页面缓存。右侧会提示搜索建议、下载搜索结果、RSS订阅功能。
使用 searX 可以搜索文件、图片、地图、音乐、新闻、学术、社交媒体、视频等(注:磁力是一种文件类型),这里不再详细演示。毕竟,本文的重点是如何部署一个完全自己的 searX 。您可以通过上面的 searX 门户搜索!
你以为简单的搜索就结束了吗?其实不是,searX和普通的搜索引擎一样,也支持很多丰富的设置!设置后可以让searX更符合个人习惯。
searX基础功能设置,支持设置默认搜索语言、界面语言、自动补全词、安全搜索过滤、主题风格、主题风格、新标签页打开搜索链接等。
searX搜索引擎设置,支持综合搜索、文件搜索、图片搜索、视频搜索等搜索设置单独的搜索引擎,非常强大!
除了基本设置和搜索引擎设置外,还提供了插件设置。该插件支持启用强制 HTTPS 链接访问、自动加载下一页搜索结果、搜索类别选择、删除跟踪链接和 Vim 快捷方式。您可以根据自己的需要进行设置。
以上是searX的基本介绍。如果你真的想拥有它,只要按照小编的步骤部署一个自己的搜索引擎!
searX 部署教程
首先,我将提供 searX 的官方文档。懂的人直接看官方文档会更快,理解会更清晰。这里主要介绍手动安装部署。事实上,它只需几个简单的步骤即可完成。
在部署之前,我先说明一下,如果你想拥有自己的 searX 搜索引擎网站,你需要一台服务器。如果需要支持谷歌,服务器必须是国外的。(估计这里难住了)
searX 安装教程
①安装pip。Centos和Ubuntu对应的安装pip命令如下:
#CentOS 6.x 32位 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm yum install -y python-pip #CentOS 6.x 64位 rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm yum install -y python-pip #CentOS 7.x yum install -y epel-release yum install -y python-pip #如果CentOS 7安装出现No package python-pip available,可以用以下命令进行安装 wget https://bootstrap.pypa.io/get-pip.py python get-pip.py #Debian/Ubuntu系统 apt-get -y update apt-get -y install python-pip
②安装git。安装git的主要目的是拉取searX的源码。安装git对应的命令如下:
#Debian/Ubuntu系统 apt-get -y install git #CentOS系统 yum -y install git
③ 安装searX,这里是searX的真正安装。主要分为两步,一、下载searX的源码,二、安装searX运行所需的依赖。安装searX的对应命令如下:
#拉取源码 git clone https://github.com/asciimoo/searx.git #安装依赖 cd searx pip install -r requirements.txt
searX 配置教程
完成以上安装操作后,下一步就是修改searX的项目配置文件,比如部署的端口号、搜索的语言等。searX 的配置文件在 searX, settings.yml 中,可以用任何编辑器进行编辑。例如:使用nano编辑器修改searX配置,对应命令如下:
#编辑配置文件 nano searx/settings.yml
支持配置的参数挺多的,但是有对应的默认值,问题不大。本节重点介绍语言、端口、地址和密钥的配置。参数说明如下:
language:是搜索语言,默认是en-US,如果你的搜索主要是中文,那就改成zh-CN,当然这个语言也可以在搜索界面设置
port:为监听端口,默认为8888,可自行修改。
bind_address:为监控地址,默认为127.0.0.1,如果ip地址需要外网访问,改成0.< @0. 0.0,这里推荐默认,然后域名倒过来即可。
secret_key:此参数为加密密钥,可自行设置。可以使用 ssh 客户端上的 openssl rand -hex 16 命令生成该值。
具体配置如下:
#修改language,默认为中文搜索结果 sed -i 's/language : "en-US"/language : "zh-CN"/g' searx/settings.yml #修改secret_key sed -i "s/ultrasecretkey/`openssl rand -hex 16`/g" searx/settings.yml #修改bind_address,改了后就可以使用ip访问了,如果你使用域名的话,可以不修改 sed -i 's/bind_address : "127.0.0.1"/bind_address : "0.0.0.0"/g' searx/settings.yml #修改port,比如修改成8000 sed -i "s/port : 8888/port : 8000/g" searx/settings.yml
更多参数配置请参考searX官方文档
运行 searX
完成上述 searX 安装后,就可以在 screen 的帮助下运行 searX。
①安装 screen
#CentOS系统 yum install screen -y #Debian/Ubuntu系统 apt-get install screen -y
② 使用screen在后台运行searX
screen -dmS python searx/webapp.py
然后用浏览器输入ip:port进行访问(ip是指服务器的公网ip,端口号是指上面修改searX配置时设置的端口号)。注意:如果你的bind_address地址没有被修改,浏览器是无法访问的。您需要使用 Nginx 进行反向代理才能访问。该方法将在后面介绍。
如果修改了bind_address地址为0.0.0.0仍然无法访问,可以使用如下命令打开防火墙端口:
#CentOS 6 iptables -I INPUT -p tcp --dport 8888 -j ACCEPT service iptables save service iptables restart #CentOS 7 firewall-cmd --zone=public --add-port=8888/tcp --permanent firewall-cmd --reload
如果防火墙端口无法访问,可能需要到服务商后台打开相应端口。
searX域名反向代理配置教程
设置反向代理,可以使用域名访问,反向代理可以使用Nginx、Apache、Caddy等。由于Nginx本身是大学问题,建议去B站搜索安装配置Nginx教程学习。这里我们重点介绍一下Nginx的自定义配置要添加哪些配置,可以通过域名访问部署好的searX。
其实只需要在Nginx中添加一个监控器,监控searX配置中设置的端口(port)和地址(bind_address)即可。具体配置如下:
#在配置文件里添加 location / { proxy_pass http://127.0.0.1:8888; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Remote-Port $remote_port; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; }
以上都配置好后,就可以使用域名完美访问了。有条件的朋友,赶紧部署一个发给朋友使用吧!