| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- package types
- type DocumentIndex struct {
- // 文本的DocId
- DocId string
- // 文本的关键词长
- TokenLength float32
- // 加入的索引键
- Keywords []KeywordIndex
- }
- // 反向索引项,这实际上标注了一个(搜索键,文档)对。
- type KeywordIndex struct {
- // 搜索键的UTF-8文本
- Text string
- // 搜索键词频
- Frequency float32
- // 搜索键在文档中的起始字节位置,按照升序排列
- Starts []int
- }
- // 索引器返回结果
- type IndexedDocument struct {
- DocId string
- // 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 []string
- 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]
- }
|