#search-engine #vector-search #distributed #meaning #web #semantic #crawl

bin+lib dawnsearch

一个开源的基于意义的分布式网络搜索引擎

3个版本 (破坏性)

0.2.0 2023年8月6日
0.1.0 2023年8月6日
0.0.0 2023年8月5日

#4 in #meaning

AGPL-3.0-or-later

160KB
3.5K SLoC

晨搜

Build Status Crates.io Crates.io License

晨搜是一个开源的基于意义的分布式网络搜索引擎。它可以索引Common Crawl数据。它使用语义搜索(基于意义搜索),使用all-MiniLM-L6-v2。它使用USearch进行向量搜索。晨搜是用Rust编写的。

公有的实例可在dawnsearch.org找到。

项目状态

晨搜目前作为一个分布式(语义)向量搜索引擎运行。当你启动一个实例时,它将向追踪器注册。实例然后可以通过搜索参与网络。可选地,它可以索引Common Crawl数据集并回答查询。

还需要完成的主要项目

  1. 更好的错误处理。代码中还有很多.unwrap()。
  2. 对故障或恶意实例的鲁棒性。
  3. 数据包加密以防止窃听。
  4. 将所有索引的页面分布到语义上接近的实例以提高搜索效率。目前搜索是发送到所有实例的。

快速入门

这将在一个最新的Ubuntu上构建和运行一个'访问终端'晨搜实例,不使用GPU加速。请参阅模式以了解其他配置的示例。

sudo apt-get update && sudo apt-get install -y build-essential libssl-dev pkg-config python3-pip

# Install rust if you don't have it already:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

pip3 install torch==2.0.0 --index-url https://download.pytorch.org/whl/cpu

现在我们需要确保构建系统可以找到PyTorch。我们搜索这个包

pip3 show torch

这将打印以下内容

Name: torch
Version: 2.0.0
Summary: Tensors and Dynamic neural networks in Python with strong GPU acceleration
Home-page: https://pytorch.org/
Author: PyTorch Team
Author-email: packages@pytorch.org
License: BSD-3
Location: /home/ubuntu/.local/lib/python3.10/site-packages
Requires: filelock, jinja2, networkx, sympy, typing-extensions
Required-by: 

使用来自'位置'的路径,将其放入.bashrc中。注意,您需要追加'/torch'。

export LIBTORCH=/home/ubuntu/.local/lib/python3.10/site-packages/torch
export LD_LIBRARY_PATH=${LIBTORCH}/lib:$LD_LIBRARY_PATH

现在我们可以加载新的环境变量并构建

source ~/.bashrc
mv DawnSearch.toml.example DawnSearch.toml
cargo run --release

现在,转到https://127.0.0.1:8080 访问您自己的晨搜实例。您将能够执行搜索,但您还没有为网络做出贡献。查看模式以了解如何做到这一点。

如果您想升级到GPU加速,请尝试以下操作

pip3 install torch==2.0.0
cargo clean
cargo run --release

或者,按照tch crate中记录的步骤进行。

请注意,在M1/M2 Mac上,'cargo install' 不起作用。但是'cargo build' 可以。

如果您遇到问题,请随时提出问题!

配置

您可以通过DawnSearch.toml 或通过环境变量如DAWNSEARCH_INDEX_CC来配置晨搜。

贡献

请提出问题或创建拉取请求!在开始进行重大增强或重构之前,请先提出一个问题。

另请参阅

依赖项

~56–78MB
~1.5M SLoC