ПостгреСКЛ

Примери претраживања целокупног текста ПостгреСКЛ

Примери претраживања целокупног текста ПостгреСКЛ
Свака база података треба да има ефикасну и свестрану могућност претраживања. Кад год се односи на базе података, ПостгреСКЛ је мајстор свих заната. Комбинује све ствари које сте заволели са СКЛ-ом са мноштвом не-СКЛ функционалности базе података. Било која од ових не-СКЛ функција, као што је врста података ЈСОНБ, фантастична је, па чак не бисте ни морали испробати другу базу података. Претраживање целог текста једна је од најновијих не-СКЛ функција уграђених у ПостгреСКЛ. Да ли је ПостгреСКЛ-ова комплетна претрага текста потпуно функционална или бисте желели посебан индекс претраживања? Ако некако можете да развијете комплетну претрагу текста лишену додавања још једног омота кода, била би то фантастична идеја. Већ сте упознати са претрагом образаца у МиСКЛ бази података. Па, хајде да их прво погледамо. Отворите љуску командне линије ПостгреСКЛ у рачунарском систему. Напишите назив сервера, име базе података, број порта, корисничко име и лозинку за одређеног корисника, осим подразумеваних опција. Ако требате слогирати са подразумеваним разматрањима, оставите све изборе празним и притисните Ентер сваку опцију. Тренутно је ваша љуска командне линије опремљена за рад.

Да бисте разумели концепт претраживања целог текста, морате да се сетите знања о претраживању образаца помоћу кључне речи ЛИКЕ. Дакле, претпоставимо табелу „особа“ у „тесту“ базе података са следећим записима у њој.

>> ОДАБЕРИ * ОД особе;

Претпоставимо да желите да преузмете записе ове табеле, где ступац 'име' има знак 'и' у било којој од својих вредности. Испробајте доњи СЕЛЕЦТ упит док користите клаузулу ЛИКЕ у командној љусци. Из доњег излаза можете видети да имамо само 5 записа за овај одређени знак „и“ у колони „име“.

>> ОДАБЕРИТЕ * ОД особе ГДЕ име КАО „% и% ';

Употреба Твсецтора:

Понекад није корисно користити кључну реч ЛИКЕ за брзо претраживање образаца, иако је реч ту. Можда бисте размислили о коришћењу стандардних израза, и иако је ово изводљива алтернатива, регуларни изрази су и јаки и троми. Имати процедурални вектор за читаве речи у тексту, општи опис тих речи, много је ефикаснији начин за решавање овог проблема. Концепт потпуне претраге текста и типа података тсвецтор створен је да одговори на њега. Постоје две методе у ПостгреСКЛ-у које раде управо оно што ми желимо:

Пример 01:

Почнимо са једноставном илустрацијом стварања вектора. Претпоставимо да желите да направите вектор за низ: „Неки људи имају коврџаву смеђу косу правилним четкањем.”. Дакле, морате написати функцију то_твсецтор () заједно са овом реченицом у заградама СЕЛЕЦТ упита као што је приложено доле. Из доњег излаза можете видети да би дао вектор референци (позиције датотеке) за сваки токен, а такође и тамо где се појмови са мало контекста, попут чланака (и) и везника (и, или), намерно игноришу.

>> ОДАБЕРИТЕ то_тсвецтор ('Неки људи имају коврџаве смеђе длаке правилним четкањем');

Пример 02:

Претпоставимо да имате два документа са по неким подацима у оба. Да бисмо сачували ове податке, сада ћемо користити стварни пример генерисања токена. Претпоставимо да сте креирали табелу „Подаци“ у својој бази података „тест“ са неколико колона у њој користећи доњи упит ЦРЕАТЕ ТАБЛЕ. Не заборавите да у њему направите колону типа ТВСЕЦТОР под називом „токен“. Из доњег резултата можете погледати табелу која је креирана.

>> СТВОРИ ТАБЕЛУ података (ИД ПРВЕНИ КЉУЧ СЕРИЈСКОГ, ТЕКСТ информација, токен ТСВЕЦТОР);

Сада се претвара да у ову табелу додамо укупне податке оба документа. Зато покушајте да урадите доњу наредбу ИНСЕРТ у љусци командне линије. Коначно, записи из оба документа успешно су додати у табелу „Подаци“.

>> ИНСЕРТ ИНТО Дата (инфо) ВАЛУЕС ('Две грешке никада не могу исправити једну.'), (' Он је тај који може да игра фудбал.'), (' Могу ли да играм улогу у овоме?'), (' Не може се разумети бол у човеку '), (' Донеси брескву у свој живот);

Сада морате колонизовати колону токена оба документа са њиховим одређеним вектором. На крају, једноставни УПДАТЕ упит ће попунити колону токена њиховим одговарајућим вектором за сваку датотеку. Дакле, морате извршити наведени доњи упит у командној љусци да бисте то урадили. Резултат показује да је ажурирање коначно извршено.

>> АЖУРИРАЊЕ података ф1 СЕТ токен = то_тсвецтор (ф1.инфо) ИЗ података ф2;

Сад кад смо све то поставили на место, вратимо се на скенирање илустрације „може ли неко“. То_тскуери са оператором АНД, као што је претходно речено, не прави разлику између локација датотека у датотекама, као што је приказано из резултата наведеног у наставку.

>> ОДАБЕРИТЕ Ид, информације ИЗ података ВХЕРЕ токен @@ то_тскуери ('цан & оне');

Пример 04:

Да бисмо пронашли речи које су „једна до друге“, покушаћемо са истим упитом са „<->'оператер. Промена је приказана у доњем излазу.

>> ОДАБЕРИТЕ Ид, информације ОД података ГДЕ жетон @@ то_тскуери ('цан <-> једно');

Ево примера да нема непосредне речи поред друге.

>> ОДАБЕРИТЕ Ид, информације ОД података ВХЕРЕ токен @@ то_тскуери ('оне <-> бол ');

Пример 05:

Пронаћи ћемо речи које се не налазе непосредно једна поред друге користећи број у оператору даљине за референцирање удаљености. Удаљеност између „донеси“ и „живота“ је 4 речи, осим приказане слике.

>> СЕЛЕЦТ * ФРОМ Дата ВХЕРЕ токен @@ то_тскуери ('донесе <4> живот ');

Да бисте проверили близину речи између скоро 5 речи, додат је у наставку.

>> СЕЛЕЦТ * ФРОМ Дата ВХЕРЕ токен @@ то_тскуери ('погрешно <5> јел тако');

Закључак:

На крају, урадили сте све једноставне и компликоване примере претраживања целокупног текста помоћу оператора и функција То_твсецтор и то_тскуери.

Како да обрнете смер померања миша и додирних табли у оперативном систему Виндовс 10
Миш и Тоуцхпадрачунарство не само да олакшава рад, већ и ефикасније и мање времена. Не можемо замислити живот без ових уређаја, али ипак је чињеница д...
Како променити показивач миша и величину, боју и шему курсора на Виндовс 10
Показивач миша и курсор у оперативном систему Виндовс 10 су врло важни аспекти оперативног система. То се може рећи и за друге оперативне системе, так...
Бесплатни и отворени кодни покретачки програми за развој Линук игара
Овај чланак ће обухватити листу бесплатних покретача игара отвореног кода који се могу користити за развој 2Д и 3Д игара на Линуку. Бројни су такви мо...