首页
Django使用GoFound全文检索引擎教程

Django使用GoFound全文检索引擎教程

04-15 12:38:39
166
1

全文检索引擎

目前主流的是 ElasticSearch和python写的whoosh,这些引擎适合一些特别大型的项目,不差钱,不差硬件的公司。

然后一些小项目、个人项目,在配置非常低的服务器上运行,这时候就需要有一个能减少硬件资源消耗低全文检索引擎了。

出于这个目的,我们自己研发了基于golang的全文检索引擎:GoFound。对内存的消耗非常少。

而且支持分页、id排序、相关度排序、关键词高亮、不区分大小写搜索

Django项目使用

  1. 安装GoFound服务端

  2. 安装python客户端

pip install gofound
  1. 使用
import gofound


def add_document():
    """
    添加索引
    """
    client = gofound.Client(url="http://127.0.0.1:5678/api")
    res = client.add_document(1000, "探访海南自贸港“样板间”", {
        "content": "洋浦经济开发区地处海南西北部洋浦半岛,是21世纪海上丝绸之路与西部陆海新通道的交汇节点。是国务院1992年批准设立的。我国第一个由外商成片开发、享受保税区政策的国家级开发区",
    })
    print(res)


def search():
    """
    搜索
    """
    client = gofound.Client(url="http://127.0.0.1:5678/api")
    res = client.query("探访海南自贸港", page=1, limit=10, order="desc")
    print(res)

    # 遍历数据
    if res.get('state'):
        documents = res.get('data').get('documents')
        if documents:
            for item in documents:
                print(item)


def highlight():
    """
    关键词高亮
    """
    client = gofound.Client(url="http://127.0.0.1:5678/api")
    res = client.query("探访海南自贸港", page=1, limit=10, order="desc", highlight={'preTag': '<span>', 'postTag': '</span>'})
    print(res)

    # 遍历数据
    if res.get('state'):
        documents = res.get('data').get('documents')
        if documents:
            for item in documents:
                print(item)


def remove():
    """
    删除索引
    """
    client = gofound.Client(url="http://127.0.0.1:5678/api")
    res = client.remove_document(1000)
    print(res)


if __name__ == '__main__':
    # add_document()
    search()
    # remove()
评论(1)