1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/mirrors-riot-search

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README.md 4.6 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 29.11.2024 19:58 095cc6c

Riot search

Go Open Source, Distributed, Simple и эффективный полнотекстовый поисковый движок.

Особенности:

  • Эффективное индексирование и поиск (1M блог 500M данных 28 секунд индексация завершена, время отклика поиска 1,65 мс, 19K запросов в секунду).
  • Поддержка логического поиска.
  • Поддержка сегментации китайских слов (используется пакет сегментации слов gse, скорость 27 МБ/с).
  • Поддержка расчёта близости ключевых слов в тексте (token proximity).
  • Поддержка вычисления корреляции BM25.
  • Поддержка пользовательских полей оценки и правил оценки.
  • Поддержка добавления онлайн, удаления индекса.
  • Поддержка сердцебиения.
  • Поддержка нескольких постоянных хранилищ.
  • Поддержка распределённого индексирования и поиска.
  • Можно достичь распределённого индексирования и поиска.

Требования: Go версии >= 1.8.

Зависимости: Riot использует go module или dep для управления зависимостями.

Установка/обновление:

go get -u github.com/go-ego/riot

Инструменты сборки:

go get -u github.com/go-ego/re

re riot: чтобы создать новое приложение riot.

$ re riot my-riotapp

re run: чтобы запустить только что созданное приложение, перейдите в папку приложения и выполните:

$ cd my-riotapp && re run

Использование: посмотрите пример.

package main

import (
    "log"

    "github.com/go-ego/riot"
    "github.com/go-ego/riot/types"
)

var (
    // searcher is coroutine safe
    searcher = riot.Engine{}
)

func main() {
    // Init
    searcher.Init(types.EngineOpts{
        // Using:             4,
        NotUseGse: true,
        })
    defer searcher.Close()

    text := "Google Is Experimenting With Virtual Reality Advertising"
    text1 := `Google accidentally pushed Bluetooth update for Home
speaker`
``` Это очень просто!

### Используйте стандартный движок:

```Go
package main

import (
    "log"

    "github.com/go-ego/riot"
    "github.com/go-ego/riot/types"
)

var (
    searcher = riot.New("zh")
)

func main() {
    data := types.DocData{Content: "Интересно, как, интересно, почему, интересно, где они?"}
    data1 := types.DocData{Content: «所以, 你好, 再见»}
    data2 := types.DocData{Content: «没有理由»}

    searcher.Index("1", data)
    searcher.Index("2", data1)
    searcher.Index("3", data2)
    searcher.Flush()

    req := types.SearchReq{Text: "你好"}
    search := searcher.Search(req)
    log.Println("поиск...", поиск)
}

Посмотрите больше примеров

Посмотрите пример Store

Посмотрите пример логического поиска

Посмотрите пример поиска по пиньинь

Посмотрите примеры поиска с использованием разных словарей и языков

Посмотрите на пример бенчмарка

Шаблоны, клиент и словари для поискового движка Riot

Авторы

Лицензия

Riot в основном распространяется на условиях Apache License (Version 2.0), основанной на wukong.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/mirrors-riot-search.git
git@api.gitlife.ru:oschina-mirror/mirrors-riot-search.git
oschina-mirror
mirrors-riot-search
mirrors-riot-search
master