All Projects → go-ego → Riot

go-ego / Riot

Licence: apache-2.0
Go Open Source, Distributed, Simple and efficient Search Engine; Warning: This is V1 and beta version, because of big memory consume, and the V2 will be rewrite all code.

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Riot

Sonic
🦔 Fast, lightweight & schema-less search backend. An alternative to Elasticsearch that runs on a few MBs of RAM.
Stars: ✭ 12,347 (+104.93%)
Mutual labels:  search, search-engine, index
Blast
Blast is a full text search and indexing server, written in Go, built on top of Bleve.
Stars: ✭ 934 (-84.5%)
Mutual labels:  search, search-engine, index
Filemasta
A search application to explore, discover and share online files
Stars: ✭ 571 (-90.52%)
Mutual labels:  search, search-engine
Opensearchserver
Open-source Enterprise Grade Search Engine Software
Stars: ✭ 408 (-93.23%)
Mutual labels:  search, search-engine
Typesense
Fast, typo tolerant, fuzzy search engine for building delightful search experiences ⚡ 🔍 ✨ An Open Source alternative to Algolia and an Easier-to-Use alternative to ElasticSearch.
Stars: ✭ 8,644 (+43.47%)
Mutual labels:  search, search-engine
Manticoresearch
Database for search
Stars: ✭ 610 (-89.88%)
Mutual labels:  search, search-engine
Dbreeze
C# .NET MONO NOSQL ( key value store embedded ) ACID multi-paradigm database management system.
Stars: ✭ 383 (-93.64%)
Mutual labels:  search, search-engine
Elasticsuite
Smile ElasticSuite - Magento 2 merchandising and search engine built on ElasticSearch
Stars: ✭ 647 (-89.26%)
Mutual labels:  search, search-engine
Sparkler
Spark-Crawler: Apache Nutch-like crawler that runs on Apache Spark.
Stars: ✭ 362 (-93.99%)
Mutual labels:  search, search-engine
Resin
Hardware-accelerated vector-based search engine. Available as a HTTP service or as an embedded library.
Stars: ✭ 529 (-91.22%)
Mutual labels:  search, search-engine
Instantsearch Ios
⚡️ A library of widgets and helpers to build instant-search applications on iOS.
Stars: ✭ 498 (-91.73%)
Mutual labels:  search, search-engine
Fess
Fess is very powerful and easily deployable Enterprise Search Server.
Stars: ✭ 561 (-90.69%)
Mutual labels:  search, search-engine
Maryam
Maryam: Open-source Intelligence(OSINT) Framework
Stars: ✭ 371 (-93.84%)
Mutual labels:  search, search-engine
Jivesearch
A search engine that doesn't track you.
Stars: ✭ 364 (-93.96%)
Mutual labels:  search, search-engine
Open Semantic Search
Open Source research tool to search, browse, analyze and explore large document collections by Semantic Search Engine and Open Source Text Mining & Text Analytics platform (Integrates ETL for document processing, OCR for images & PDF, named entity recognition for persons, organizations & locations, metadata management by thesaurus & ontologies, search user interface & search apps for fulltext search, faceted search & knowledge graph)
Stars: ✭ 386 (-93.59%)
Mutual labels:  search, search-engine
Awesome Search
Awesome Search - this is all about the (e-commerce) search and its awesomeness
Stars: ✭ 361 (-94.01%)
Mutual labels:  search, search-engine
Lucene Solr
Apache Lucene and Solr open-source search software
Stars: ✭ 4,217 (-30.01%)
Mutual labels:  search, search-engine
Search cop
Search engine like fulltext query support for ActiveRecord
Stars: ✭ 660 (-89.05%)
Mutual labels:  search, search-engine
Xapiand
Xapiand: A RESTful Search Engine
Stars: ✭ 347 (-94.24%)
Mutual labels:  search, search-engine
Minsql
High-performance log search engine.
Stars: ✭ 356 (-94.09%)
Mutual labels:  search, search-engine

Riot search

CircleCI Status Appveyor codecov Build Status Go Report Card GoDoc GitHub release Join the chat at https://gitter.im/go-ego/ego

Go Open Source, Distributed, Simple and efficient full text search engine.

简体中文

Features

Requirements

Go version >= 1.8

Dependencies

Riot uses go module or dep to manage dependencies.

Installation/Update

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

Build-tools

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

re riot

To create a new riot application

$ re riot my-riotapp

re run

To run the application we just created, you can navigate to the application folder and execute:

$ cd my-riotapp && re run

Usage:

Look at an example

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 early`
	text2 := `Google is testing another Search results layout with 
	rounded cards, new colors, and the 4 mysterious colored dots again`
	
	// Add the document to the index, docId starts at 1
	searcher.Index("1", types.DocData{Content: text})
	searcher.Index("2", types.DocData{Content: text1}, false)
	searcher.IndexDoc("3", types.DocData{Content: text2}, true)

	// Wait for the index to refresh
	searcher.Flush()
	// engine.FlushIndex()

	// The search output format is found in the types.SearchResp structure
	log.Print(searcher.Search(types.SearchReq{Text:"google testing"}))
}

It is very simple!

Use default engine:

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: `I wonder how, I wonder why
		, I wonder where they are`}
	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("search...", search)
}

Look at more Examples

Look at Store example

Look at Logic search example

Look at Pinyin search example

Look at different dict and language search example

Look at benchmark example

Riot search engine templates, client and dictionaries

Authors

License

Riot is primarily distributed under the terms of the Apache License (Version 2.0), base on wukong.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].