分布式全文搜索引擎 riotsearch

码农软件 · 软件分类 · 搜索引擎 · 2019-08-25 23:27:13

软件介绍

riot 分布式全文搜索引擎, 采用 Go 语言开发。功能特性:

  • 高效索引和搜索(1M条微博500M数据28秒索引完,1.65毫秒搜索响应时间,19K搜索QPS)

  • 支持中文分词(使用gse分词包并发分词,速度27MB/秒)

  • 支持逻辑搜索

  • 支持中文转拼音搜索

  • 支持计算关键词在文本中的紧邻距离(token proximity)

  • 支持计算BM25相关度

  • 支持自定义评分字段和评分规则

  • 支持在线添加、删除索引

  • 支持多种持久存储

  • 支持 heartbeat

  • 支持分布式索引和搜索

  • 可实现分布式索引和搜索

  • 采用对商业应用友好的Apache License v2发布

示例代码:

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
searcher.Init(types.EngineOpts{
             Using:             4,
             SegmenterDict: "./dict/dictionary.txt"})
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.IndexDoc(1, types.DocIndexData{Content: text}, false)
    searcher.IndexDoc(2, types.DocIndexData{Content: text1}, false)
    searcher.IndexDoc(3, types.DocIndexData{Content: text2}, false)

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

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

主要改进:

  • 增加逻辑搜索 

  • 增加拼音搜索 

  • 增加分布式和 heartbeat

  • 分词等改进 

  • 增加更多api

  • 修复 bug

  • 删除依赖 cgo 的存储引擎, 增加 badger和 leveldb 持久化引擎

项目详情:

本文地址:https://codercto.com/soft/d/13178.html

代码阅读方法与实践

代码阅读方法与实践

斯平内利斯 / 赵学良 / 清华大学出版社 / 2004-03-01 / 45.00元

代码阅读有自身的一套技能,重要的是能够确定什么时候使用哪项技术。本书中,作者使用600多个现实的例子,向读者展示如何区分好的(和坏的)代码,如何阅读,应该注意什么,以及如何使用这些知识改进自己的代码。养成阅读高品质代码的习惯,可以提高编写代码的能力。 阅读代码是程序员的基本技能,同时也是软件开发、维护、演进、审查和重用过程中不可或缺的组成部分。本书首次将阅读代码作为一项独立课题......一起来看看 《代码阅读方法与实践》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

html转js在线工具
html转js在线工具

html转js在线工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试