美文网首页
索引的作用

索引的作用

作者: 酷走天涯 | 来源:发表于2018-12-27 09:49 被阅读20次
  • 如何创建一个索引
  • 使用正则表达式索引
  • 将索引写入io.writer
  • 将数据读取到索引中

索引实现了一个快速子字符串的索引,比如我们要在字符传'1234445555644',查找所有字符4出现的下标,使用索引就能已最快的速度计算

创建索引

New 为数据创建一个新的索引。对于N = len(data),索引创建时间为 O(N*log(N))

func (x *Index) Lookup(s []byte, n int) (result []int)

package main

import (
  "index/suffixarray"
  "fmt"
)

func main() {
  s := []byte("12345672890")
  index := suffixarray.New(s)
  result := index.Lookup([]byte("2"),2)
  fmt.Println(result)
}
image.png

搜索子字符串出现在字符串中的位置,Lookup参数n表示查找几个,-1 表示查找所有的位置下标


使用正则表达式索引子串位置

如果对正则表达式不清楚,请先看正则表达式章节

package main

import (
"index/suffixarray"
"fmt"
  "regexp"
)

func main() {
  s := []byte("12422222")
  index := suffixarray.New(s)
  reg := regexp.MustCompile(`2+`)
  result := index.FindAllIndex(reg,-1)
  fmt.Println(result)
}
image.png

将索引写入io.writer

package main

import (
"index/suffixarray"
"fmt"
 "bytes"
)

func main() {
  s := []byte("ab")
  index := suffixarray.New(s)
  var w  bytes.Buffer
  index.Write(&w)
  fmt.Println(string(string(w.Bytes())))
}
image.png

将数据读取到索引中

func (x *Index) Read(r io.Reader) error

package main

import (
"index/suffixarray"
"fmt"
 "bytes"
  )
func main() {
  var index *suffixarray.Index = new(suffixarray.Index)
  var w = new(bytes.Buffer)
  w.WriteString("abcd")
  fmt.Println(w)
  index.Read(w)
  fmt.Println(index)
}

相关文章

  • 28索引介绍及B树索引说明

    索引的作用起到优化查询的作用 索引的分类(算法)B树 默认使用的索引类型R树HashFullTextGIS索引 ...

  • 索引的作用,如何创建索引,索引的副作用

    适当的使用索引可以提高数据检索速度,可以给经常需要进行查询的字段创建索引 Oracle的索引分为5种:唯一索引,组...

  • MySQL索引

    索引的作用 查看索引 创建索引 删除索引 索引类型 强制索引和禁止某个索引

  • 索引的作用

    首先明白为什么索引会增加速度,DB在执行一条Sql语句的时候,默认的方式是根据搜索条件进行全表扫描,遇到匹配条件的...

  • 索引的作用

    用索引这是用比家属开辟了一块空间对UID即按一个索引,方便查询相当于mysql在另外一块空间里用B+树的形式将UI...

  • 索引的作用

    如何创建一个索引 使用正则表达式索引 将索引写入io.writer 将数据读取到索引中 索引实现了一个快速子字符串...

  • 索引的作用

    索引用来排序数据以加快搜索和排序操作的速度。想像一本书后的索引(如本书后的索引),可以帮助你理解数据库的索引。 假...

  • MySQL索引及执行计划

    一.索引作用 提供了类似于书中目录的作用,目的是为了优化查询 二.索引的种类 B树索引Hash索引 R树索引 Fu...

  • 索引及执行计划

    索引作用:提供了类似于书中目录的作用,目的是为了优化查询 索引的种类(算法):B树索引、Hash索引、R树、Ful...

  • MySQL-lesson04-索引及执行计划

    1、索引的作用 提供了类似于书中目录的作用,目的是为了优化查询 2、索引的种类 B树索引、Hash索引、R树、Fu...

网友评论

      本文标题:索引的作用

      本文链接:https://www.haomeiwen.com/subject/quvpqqtx.html