Hodiaŭ mi ludis optimumigi malrapida SQLa Apliko de la genro

SELECT * FROM 'table' WHERE `field` LIKE '%word%'

Kie estas la problemo nun tie – la lasta parto '% word%’ kaj eĉ pli specifaj karakteroj % antaŭ la vorto, farantojn. ĵokero simbolo % ,antaŭ ajna valoro, rekte igas nin konsulti rekte en malrapida, ĉar tio la apliko haltas nin uzi indeksoj Kampo. Decidoj kiel ĉiam, sed ne ĉiam klara 😆 Entute MySQL Ili havas solvon por tiu problemo plenteksta serĉo indeksado kampo. Kiel ŝanĝi la kampo havas multajn skribita dokumentado, sed rapidado priskribos kiel ŝanĝi la supro peto, ĉar ni ricevos por iom dramo finfine. Sledka kiel aplikebla plena teksto kampo supre, apliko devas esti ŝanĝoj en la tipo:

SELECT * FROM `table` WHERE MATCH (field) AGAINST ('word')

Do la strukturo estas evidenta kaj ne bezonas nenecesa diskuto. La supre sercxmendo ekvalidos, se la vorto, cxar vi fari peton almenaŭ 4 simboloj, La defaŭlta valoro estas, se vi volas modifi devas specifi la valoro, която желаете в my.cnf в частта [mysqld] deklaracio ft_min_word_len= 3 aŭ 2, 1 не е добър избор очевидно 😉 . Post vi ŝanĝas la valoron kaj rekomenco mysql servilo-bezono fari riparon en via tabloj, ordo por la nova indeksado ekvalidos. Ĝis nun ĉio klara: fari ŝanĝojn, reset, rebildvam indeksoj kaj fari mian deziron kaj revenoj 0 Kontrolanta kun la celo 😀

SHOW VARIABLES

Mi vidas ke la valoroj, Mi demandis en forto, rebildvam denove indeksoj – sama rezulto. malagrabla 🙄, tre malkomforta. De tie sur ĝi komencis grandan malbenado gratante la ŝlosilo al la barako 😀 kiu estis tute, sufiĉe interesa. sur la tuta, Mi komencis legi dokumentaron ne scias kiun vojon kaj venis al interesa paŝo

Such a technique works best with large collections (fakte, estis zorge agordita tiel). Por tre malgrandaj tabloj, vorto distribuo ne adekvate reflekti ilia semantika valoro, kaj tiu modelo povas foje produkti bizaraj rezultoj. Ekzemple, kvankam la vorto "MySQL" ĉeestas en ĉiu vico de la artikoloj tablo montris pli frue, serĉo por la vorto ne produktas rezultojn

ГРЕДА 😳 Дам табличката ми беше малка – Tamen ĝi estis testo. Nia apliko en granda tablo super 2 000 000 ordon kaj aferoj dormis. Nu nun klara problemo. Fari klaran decidon, Mi mencios koncize, kiu elportu tekstoserĉon 3 altnivela reĝimo Buleaj , ESPRIMOJ kaj NATURA LINGVO kiel la lasta laboro defaŭlte. Por modoj povas kontroli dokumentado, Mi klarigos al 2-3 думи за BOOLEAN понеже в него е разковничето. Той поддържа логически оператори от типа AND, OR , NOT и прочие и може да се правят разни магии с търсените фрази, да има една, да няма друга и прочие. Поддържа и символа *, който е еквивалент на wildcard символа % 😉 Той е полезен, когато търсената дума е под дължината на ft_min_word_len или за малки таблички ;). Поне при мен на таблица с около 100 реда върши идеална работа. Остана само да видим и завършената заявка:

SELECT * FROM `table` WHERE MATCH (field)
AGAINST ('*word*' IN BOOLEAN MODE)

Тука вече идва момент дали ни работи индексирането с wildcard символаотговорът е не знам. Принципно мисля, че да, защото не е казано друго в документацията, но в документацията очевидно не се казват или показват много неща 😀

Plibonigita per Zemanta

How PulseAudio works.

Image via Wikipedia

Днес най- накрая след една камара време реших да си купя още кабели за да си закача 5.1 аудио системата ми пълноценно. Досега я ползвах със нормален стерео кабел и след това системата сама си правеше деление на аудио каналите. Което не е никак добре. Сега вече за всеки канал си има отделен кабел и звукът е доста по чист (естествено), по плътен а на филмите усещането е подобрено много кратно. Имаше няколко малки драми които се оправят относителни интуитивно. Основната драма беше, че звукът тръгна само в front колоните без буфер център или задните след като пренастроих звуковата схема на Gnome да е 5.1 . В повечето плеъри имам опция за настройка в alsa часта за колко канално да е аудиото но има програми в които отсъствува такава възможност като да речем adobe flash player. Първоначалната ми идея беше просто да пренастроя .asoundrc като задам параметри да дублира звукът по всички каналирешение с което не се гордея защото не го обмислих изобщо. Конфигурацията тривиална :

pcm.!default {
type plug
slave.pcmsurround51
slave.channels 6
route_policy duplicate
}

С нея нещата си дойдоха на място докато не осъзнах че alsa може да обработва само по 1 процес и докато тои не приключи да я ползва друг не може. 😳 Неприятно но факт бях забравил времената в който слушаш или player или youtube и ако едното ти омръзне трябва да затвориш програмата, че да ползваш другата апликация. Което веднага ми подсказа къде е истинския корен на нещатаконфигурацията на pulseaudio сървъра. Pulseaudio е най грубо казано прокси сървър който обработва информацията между аудио хардуера и аудио софтуера който иска да го ползва. Система която с години се доказа много кратно. При нея конфигурацията се намира в /etc/pulse/daemon.conf. По подразбиране всичко е закоментирано с ; така че ако не сте праивли промени може направо смело да добавите следните редове накрая на файлът:

enable-lfe-remixing = yes

default-sample-rate = 48000
default-sample-channels = 6

Имената на опциите са очевидни задаваме стойноста на колко канално аудио ще сме малък тунинг на стандартния битрейт и разрешване на lfe ремиксирането. След това остава да рестартирате alsa и pulseaudio с

sudo /etc/init.d/alsa-utils restart && pulseaudio -k

От тук нататък за мен остана само а се наслаждавам на вече по доброто аудио.

edit: .asoundrc трябва да е със съдържание за да нямате проблеми със skype и някой други апликации

pcm.pulse {type pulse }
ctl.pulse { type pulse }

Plibonigita per Zemanta