dataspace

Форк
0

3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
3 месяца назад
README.md

Dataspace

Установка

go get gitverse.ru/vestnik/dataspace

Примеры основных возможностей

Инициализация пространства данных

package main
import (
"log"
"gitverse.ru/vestnik/dataspace"
)
func main() {
s, err := dataspace.New("test.dat")
if err != nil {
log.Fatal(err)
}
}

Запись значения

s.Set([]byte("key"), []byte("value"))

Получение значения

s.Get([]byte("key"))

Удаление значения

s.Delete([]byte("key"))

Итерация значений

// получение первых 10 элементов
s.Range(dataspace.Asc, 10, 0)
// получение последних 10 элементов
s.Range(dataspace.Desc, 10, 0)
// получение 5 элементов начиная с 10 элемента
s.Range(dataspace.Asc, 5, 10)
// получение 5 элементов начиная с 10 элемента с конца
s.Range(dataspace.Desc, 5, 10)

Поиск

package main
import (
"fmt"
"log"
"gitverse.ru/vestnik/dataspace"
)
func main() {
s, err := dataspace.New("test.dat")
if err != nil {
log.Fatal(err)
}
s.Set([]byte("key:1"), []byte("bike:1"))
s.Set([]byte("key:2"), []byte("bike:2"))
s.Set([]byte("key:3"), []byte("bike:3"))
s.Set([]byte("key:4"), []byte("bike:4"))
s.Set([]byte("key:5"), []byte("bike:5"))
s.CreateSearchFactor("best_sales")
s.CreateSearchFactor("price_over_100k")
s.CreateSearchFactor("price_less_100k")
s.CreateSearchFactor("mountain_bike")
s.CreateSearchFactor("road_bike")
s.SetToSearchFactors([]byte("key:1"), "best_sales", "price_less_100k", "mountain_bike")
s.SetToSearchFactors([]byte("key:2"), "price_less_100k", "mountain_bike")
s.SetToSearchFactors([]byte("key:3"), "best_sales", "price_over_100k", "road_bike")
s.SetToSearchFactors([]byte("key:4"), "best_sales", "price_over_100k", "mountain_bike")
s.SetToSearchFactors([]byte("key:5"), "price_less_100k", "road_bike")
bestSales, err := s.Search(dataspace.Intersection, "best_sales")
if err != nil {
log.Fatal(err)
}
for _, v := range bestSales {
fmt.Printf("best sales: %v\n", string(v)) // bike:3, bike:4, bike:1
}
bestSalesMountainBikes, err := s.Search(dataspace.Intersection, "best_sales", "mountain_bike")
if err != nil {
log.Fatal(err)
}
for _, v := range bestSalesMountainBikes {
fmt.Printf("best sales mountain bikes: %v\n", string(v)) // bike:4, bike:1
}
}

Что дальше?

for {
оптимизация
тест
if тест == успешно {
continue
}
}

Спасибо за просмотр!

Описание

Быстрое, встраиваемое хранилище типа "ключ-значение" на Go с многофакторным поиском.

Языки

Go

Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.