Два года в /fg/. Войти !bnw Сегодня Клубы
Привет, TbI — HRWKA! 1239.0 пользователей не могут ошибаться!
?6946
прекрасное6443
говно5907
говнорашка5512
хуита4716
anime3066
linux2654
music2635
bnw2602
рашка2565
log2356
ололо2178
дунч1833
pic1815
сталирасты1491
украина1439
быдло1437
bnw_ppl1422
дыбр1238
гімно1158

Текстовых данных мало (порядка 300Mb за два года), нужен полнотекстовый поиск. Востребованы редко, поэтому в памяти держать не хочется, по этой причине не подходит еластик. Идеально подошёл бы sqlite, но, как я понял, без переконпеляции с доп. модулями там проблемы со стеммингом русского языка. Ещё вариант опробовать постгресовский rum, про который писал комар, но тогда придётся держать в памяти постгрес. Можно выгружать скриптом на гитхуп и пользоваться его поиском, но там только точное совпадение слова и показывается всего два топ матча.
Какие ещё есть варианты, чтобы поменьше пердолькаться?

#S5EIO7 (19) / @anonymous / 2892 дня назад

В sqlite с версии 3.8 появился partial index — возможность строить индекс по заданному условию.

CREATE INDEX temperature_scale_1 ON temperature(sensor ASC, timestamp ASC) WHERE scale=1; 
CREATE INDEX temperature_scale_5 ON temperature(sensor ASC, timestamp ASC) WHERE scale=5;

Но при запуске prepared statement планировщик выбирает индексы ДО байндинга, а значит ещё не знает, каким будет значение условия, и созданный partial index использован не будет.
Приходится вручную подставлять значения, используемые таким индексом, и снова помнить про экранирование от sql-инъекций, если используются не числовые значения.

sensor, scale, start, end = 1, 5, 1451628000, 1452492000 

c.execute('SELECT * FROM temperature WHERE sensor = ? AND scale = %d AND timestamp BETWEEN ? AND ?' % (scale), (sensor, start, end))
#RHKE5E (3) / @kogda / 3020 дней назад
tfw fts{3,4} работает в 1.5 раза медленнее чем полное сканирование таблицы на маленьких полях, tfw `like '%puk%'` и `match '*puk*'` работают по разному, а `regexp` и `not match` (привет, хисворк) вообще не работает. Но вообще хорошо зделали, мне нр.
#ORLRRR (0) / @mugiseyebrows / 3501 день назад
> As currently implemented (version 3.5.0) this method still returns a hard-coded value of 512 bytes, since there is no standard way of discovering the true sector size on either Unix or Windows.
#65Z65O (0) / @kerrigan / 3659 дней назад

Binding Values To Prepared Statements

:VVV

#3261XR (3) / @kerrigan / 4009 дней назад
https://www.sqlite.org/lockingv3.html > Locking and concurrency control are handled by the pager module. The pager module is responsible for making SQLite "ACID" (Atomic, Consistent, Isolated, and Durable). The pager module makes sure changes happen all at once, that either all changes occur or none of them do, that two or more processes do not try to access the database in incompatible ways at the same time, and that once changes have been written they persist until explicitly deleted. The pager also provides a memory cache of some of the contents of the disk file. > The pager is unconcerned with the details of B-Trees, text encodings, indices, and so forth. From the point of view of the pager the database consists of a single file of uniform-sized blocks. Each block is called a "page" and is usually 1024 bytes in size. The pages are numbered beginning with 1. So the first 1024 bytes of the database are called "page 1" and the second 1024 bytes are call "page 2" and so forth. All other encoding details are handled by higher layers of the library. The pager communicates with the operating system using one of several modules (Examples: os_unix.c, os_win.c) that provides a uniform abstraction for operating system services. > The pager module effectively controls access for separate threads, or separate processes, or both. Throughout this document whenever the word "process" is written you may substitute the word "thread" without changing the truth of the statement. Интересный модуль. Особенно, если хранить данные в своих форматах (/me косо поглядывает на bitcoind)
#HWHXMC (0+1) / @octagram / 4524 дня назад
SQLite это такая SQL-библиотека, которую 95% людей юзают в приложениях, в которых SQL ВООБЩЕ БЛЯТЬ НАХУЙ НЕ НУЖЕН, СУКА
#Y0H4F1 (3+2) / @stiletto / 4756 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.