zoukankan      html  css  js  c++  java
  • index.go

    package types

    type DocumentIndex struct {
        // 文本的DocId
        DocId uint64

        // 文本的关键词长
        TokenLength float32

        // 加入的索引键
        Keywords []KeywordIndex
    }

    // 反向索引项,这实际上标注了一个(搜索键,文档)对。
    type KeywordIndex struct {
        // 搜索键的UTF-8文本
        Text string

        // 搜索键词频
        Frequency float32

        // 搜索键在文档中的起始字节位置,按照升序排列
        Starts []int
    }

    // 索引器返回结果
    type IndexedDocument struct {
        DocId uint64

        // BM25,仅当索引类型为FrequenciesIndex或者LocationsIndex时返回有效值
        BM25 float32

        // 关键词在文档中的紧邻距离,紧邻距离的含义见computeTokenProximity的注释。
        // 仅当索引类型为LocationsIndex时返回有效值。
        TokenProximity int32

        // 紧邻距离计算得到的关键词位置,和Lookup函数输入tokens的长度一样且一一对应。
        // 仅当索引类型为LocationsIndex时返回有效值。
        TokenSnippetLocations []int

        // 关键词在文本中的具体位置。
        // 仅当索引类型为LocationsIndex时返回有效值。
        TokenLocations [][]int
    }

    // 方便批量加入文档索引
    type DocumentsIndex []*DocumentIndex

    func (docs DocumentsIndex) Len() int {
        return len(docs)
    }
    func (docs DocumentsIndex) Swap(i, j int) {
        docs[i], docs[j] = docs[j], docs[i]
    }
    func (docs DocumentsIndex) Less(i, j int) bool {
        return docs[i].DocId < docs[j].DocId
    }

    // 方便批量删除文档索引
    type DocumentsId []uint64

    func (docs DocumentsId) Len() int {
        return len(docs)
    }
    func (docs DocumentsId) Swap(i, j int) {
        docs[i], docs[j] = docs[j], docs[i]
    }
    func (docs DocumentsId) Less(i, j int) bool {
        return docs[i] < docs[j]
    }

  • 相关阅读:
    用js遍历生成数独可行数据(未优化版本)
    JS生成tips小工具
    Iframe使用
    二级指针作输入的三种内存模型
    货品的进出库模型
    约瑟夫问题
    vector
    CUDA并行简单加法
    第一个CUDA程序
    在Ubuntu下安装、配置和测试cuda[复制]
  • 原文地址:https://www.cnblogs.com/zhangboyu/p/7461643.html
Copyright © 2011-2022 走看看