gofound - GoFound GoLang全文検索go言語の全文検索エンジンは、バランスの取れたバイナリツリー+フォワードインデックスおよびインバーテッドインデックスに基づいており、数十億のデータとミリ秒レベルのクエリをサポートできます。使い方は簡単で、httpインターフェースを使用して、どのシステムでも使用できます。

(GoFound GoLang Full text search go语言全文检索引擎 基于平衡二叉树+正排索引、倒排索引实现 可支持亿级数据,毫秒级查询。 使用简单,使用http接口,任何系统都可以使用。)

Created at: 2022-04-12 11:08:34
Language: Go
License: Apache-2.0

GoFound

GoFound
golangによって実装された全文検索エンジン。単一マシンの10億レベルのデータの永続性とミリ秒レベルの検索をサポートします。インターフェイスはhttp経由で呼び出すことができます。詳細については、 APIドキュメントを参照してください

ドキュメンテーション

オンライン体験

Simpleコミュニティで使用されるGoFoundは、関連する投稿を直接あいまい検索できます

オンライン体験

GoFoundオンライン管理の背景デモ

http://119.29.69.50:5678/admin

QQ交換グループ

556102631

バイナリファイルのダウンロード

Windows、Linux、macOS(amd64およびarm64)およびAppleM1プロセッサをサポートします

クリックしてダウンロード

テクノロジースタック

  • 二分探索
  • クイックソート
  • 転置インデックス
  • 正の指数
  • ファイルの断片化
  • golang-jieba分詞
  • leveldb

なぜgolangを使用して全文検索エンジンを実装するのですか?

  • 名前が示すように、

    GoFound
    フルテキスト検索の世界を探索してください。これは、単一のマシンで1億レベルのデータの永続性とミリ秒レベルの検索をサポートするコンパクトで強力なフルテキスト検索エンジンです。

  • 従来のプロジェクトのほとんどは、十分に成熟しており、コミュニティが活発で、情報が完全である

    ElasticSearch
    ため、全文検索に使用されます。
    ElasticSearch
    欠点は、構成が煩雑であり、JVMに基づくメモリ消費が比較的大きいことです。

  • したがって、メモリをあまり消費せずに、より効率的な検索エンジンが必要です。フルテキスト検索の目的は、ネイティブコンパイルと比較

    ElasticSearch
    して、最小のメモリで実現されます。これにより、システムリソースの消費が削減されます。
    gofound
    そして、外部依存はありません。

インストールして開始

ソースコードをダウンロードした後、ソースコードディレクトリに移動し、次の2つのコマンドを実行します

  • コンパイル

コンパイルせずに実行可能この手順をスキップします。

go get && go build
  • 起動
./gofound --addr=:8080 --data=./data
  • Dockerのデプロイ
docker build -t gofound .
docker run -d --name gofound -p 5678:5678 -v /mnt/data/gofound:/usr/local/go_found/data gofound:latest
  • その他のコマンドは、構成

多言語SDK

gofoundの多言語SDKを使用すると、gofoundをさまざまな言語で使用できます。ただし、バージョン番号とgofoundは一貫している必要があることに注意してください。メジャーバージョンとサブバージョンの番号は、リビジョンの不整合による影響を受けません。

Java

Python

Node.js

他の言語のSDKは次々と改善されています。また、 APIドキュメントを介してHTTPリクエストで直接実装することもできます。

ESと比較する

ES GoFound
永続性 永続性
インメモリインデックス ディスク+メモリキャッシュに基づく
JDKをインストールする必要があります ネイティブバイナリ、外部依存関係なし
サードパーティの単語セグメンテーションプラグインをインストールする必要があります 中国語の単語セグメンテーションとシソーラスが付属しています
デフォルトではビジュアル管理インターフェイスはありません 組み込みのビジュアル管理インターフェイス
大きなメモリ使用量 Golangネイティブ実行可能ファイルに基づくと、メモリは非常に小さいです
複雑な構成 デフォルトでは、パラメーターなしで開始でき、少量の構成が提供されます

今後の

TODO

GoFoundのユーザー

シンプルなコミュニティ{2 }ベータブログ{2 } Book360

深セン普愛達科技有限公司▲深セン普愛達科技有限公司

Xi'an Yishen Network Information System Service Co.、Ltd.

ビデオリソース検索{2 } CoolEasy IoT @フランス語ブログ

ハオミの2Dハウス

リリースログ

リリースログ