База података Еластицсеарцх
Еластицсеарцх је једна од најпопуларнијих НоСКЛ база података која се користи за чување и претрагу података заснованих на тексту. Заснован је на Луцене технологији индексирања и омогућава преузимање претраживања у милисекундама на основу података који се индексирају.
На основу веб странице Еластицсеарцх, ево дефиниције:
Еластицсеарцх је дистрибутивни, РЕСТфул софтвер за претрагу и аналитику отвореног кода, способан да реши све већи број случајева употребе.
То су биле неке речи на високом нивоу о Еластицсеарцх-у. Хајде да овде детаљно разумемо концепте.
- Дистрибуирано: Еластицсеарцх податке које садржи дели на више чворова и користи господар-роб алгоритам интерно
- РЕСТфул: Еластицсеарцх подржава упите базе података путем РЕСТ АПИ-ја. То значи да можемо користити једноставне ХТТП позиве и ХТТП методе попут ГЕТ, ПОСТ, ПУТ, ДЕЛЕТЕ итд. за приступ подацима.
- Претраживач и Аналитика: ЕС подржава високо аналитичке упите за покретање у систему који се могу састојати од агрегираних упита и више типова, попут структурираних, неструктурираних и гео упита.
- Хоризонтално скалабилно: Ова врста скалирања односи се на додавање више машина у постојећи кластер. То значи да је ЕС способан да прихвати више чворова у свом кластеру и не обезбеди време прекида за потребне надоградње система. Погледајте доњу слику да бисте разумели концепте скалирања:
Вертикално и хоризонтално скалирање
Први кораци са Еластицсеарцх базом података
Да бисте почели да користите Еластицсеарцх, он мора бити инсталиран на машини. Да бисте то урадили, прочитајте Инсталација ЕластицСеарцх-а на Убунту-у.
Обавезно имајте активну инсталацију ЕластицСеарцх ако желите да испробате примере које ћемо представити касније у лекцији.
Еластицсеарцх: Цонцептс & Цомпонентс
У овом одељку ћемо видети које компоненте и концепти леже у срцу Еластицсеарцх-а. Разумевање ових концепата је важно да би се разумело како ЕС функционише:
- Кластер: Кластер је колекција серверских машина (чворова) која садржи податке. Подаци су подељени између више чворова тако да се могу реплицирати, а појединачна тачка отказа (СПоФ) се не дешава са ЕС сервером. Подразумевано име кластера је еластицсеарцх. Сваки чвор у кластеру повезује се с кластером УРЛ-ом и именом кластера, па је важно да ово име остане јасно и јасно.
- Чвор: Чвор машина је део сервера и назива се јединственом машином. Похрањује податке и пружа могућности индексирања и претраживања, заједно са осталим чворовима кластера.
Захваљујући концепту хоризонталног скалирања, можемо виртуелно додати бесконачни број чворова у ЕС кластер како бисмо му дали много више снаге и могућности индексирања.
- Индекс: Индекс је збирка докумената са донекле сличним карактеристикама. Индекс је прилично сличан бази података у окружењу заснованом на СКЛ-у.
- Тип: Тип се користи за раздвајање података између истог индекса. На пример, база података / индекс купаца може имати више типова, као што су корисник, врста_плаћања итд.
Имајте на уму да су типови застарели од ЕС в6.0.0 па надаље. Прочитајте овде зашто је то учињено.
- Документ: Документ је најнижи ниво јединице који представља податке. Замислите то као ЈСОН објекат који садржи ваше податке. У индексу је могуће индексирати што више докумената.
Типови претраге у Еластицсеарцх-у
Еластицсеарцх је познат по својим могућностима претраживања у скоро реалном времену и флексибилности коју пружа са типом података који се индексирају и претражују. Почнимо да проучавамо како се користи претрага са разним врстама података.
- Структурирано претраживање: Ова врста претраге се покреће на подацима који имају унапред дефинисани формат попут датума, времена и бројева. Са унапред дефинисаним форматом долази и флексибилност извођења уобичајених операција попут поређења вредности у распону датума. Занимљиво, текстуални подаци се такође могу структурирати. То се може догодити када поље има фиксни број вредности. На пример, Име базе података може бити МиСКЛ, МонгоДБ, Еластицсеарцх, Нео4Ј итд. Са структурираном претрагом, одговор на упите које покрећемо је да или не.
- Претраживање целог текста: Ова врста претраге зависи од два важна фактора, Релевантност и Анализа. Помоћу Релевантности утврђујемо колико се неки подаци подударају са упитом тако што дефинишемо резултат у резултујућим документима. Ову оцену даје сам ЕС. Анализа односи се на разбијање текста на нормализоване токене да би се створио обрнути индекс.
- Вишепољна претрага: Како се број аналитичких упита стално повећава на ускладиштеним подацима у ЕС-у, обично се не суочавамо само са упитима са једноставним подударањем. Порасли су захтеви за покретање упита који се протежу у више поља и имају сортирану сортирану листу података коју нам враћа сама база података. На тај начин подаци могу бити крајње кориснику присутни на много ефикаснији начин.
- Проимити Матцхинг: Упити данас су много више од пуког идентификовања садрже ли неки текстуални подаци други низ или не. Реч је о успостављању односа између података како би се могли оцењивати и поклапати са контекстом у којем се подаци подударају. На пример:
- Лопта је погодила Џона
- Јохн је погодио лопту
- Јохн је купио нову лопту која је погођена у Јаен врт
Упит за подударање ће пронаћи сва три документа када се тражи Ударац лоптом. Непосредна претрага може нам рећи колико се ове две речи појављују у истом реду или пасусу због којих су се подударале.
- Делимично подударање: Често треба да покренемо упите за делимично подударање. Делимично подударање омогућава нам покретање упита који се делимично подударају. Да бисмо ово визуализирали, погледајмо сличне упите засноване на СКЛ-у:
СКЛ упити: делимично подударање
ГДЕ назив КАО "% јохн%"
И име КАО "% ред%"
И назив КАО „% гарден%“У неким приликама треба да покренемо само делимичне упите за подударање чак и када се то може сматрати грубим техникама.
Интеграција са Кибаном
Када је реч о механизму аналитике, обично треба да покрећемо упите за анализу у домену Бусинесс-Интеллигенце (БИ). Када су у питању пословни аналитичари или аналитичари података, не би било фер претпоставити да људи знају програмски језик када желе да визуализују податке присутне у ЕС кластеру. Овај проблем решава Кибана. Кибана нуди толико много предности за БИ да људи заиста могу да визуализују податке помоћу одличне, прилагодљиве контролне табле и да неактивно виде податке. Погледајмо неке од његових предности овде.
Интерактивне табеле
У основи Кибане су интерактивне табеле попут ове:
Кибана долази подржан са разним врстама графикона као што су тортни дијаграми, сунчанице, хистограми и још много тога, што користи комплетне могућности агрегације ЕС.
Маппинг Суппорт
Кибана такође подржава потпуну гео-агрегацију која нам омогућава да мапирамо своје податке. Зар ово није у реду?!
Унапред изграђени агрегати и филтри
Помоћу унапред изграђених агрегација и филтера могуће је дословно фрагментирати, испустити и покренути високо оптимизоване упите на Кибана контролној табли. Са само неколико кликова могуће је покренути обједињене упите и представити резултате у облику интерактивних графикона.
Лака дистрибуција контролних табли
Са Кибана-ом је такође врло лако делити контролне табле са много широм публиком, а да се не врше никакве промене на контролној табли уз помоћ режима Само контролна табла. Контролне табле можемо лако уметнути у нашу интерну вики или веб страницу.
Истакнуте слике снимљене са странице производа Кибана.
Коришћење Еластицсеарцх
Да бисте видели детаље инстанце и информације о кластеру, покрените следећу наредбу:
Сада можемо покушати да убацимо неке податке у ЕС помоћу следеће наредбе:
Уметање података
цурл \-Кс ПОСТ 'хттп: // лоцалхост: 9200 / линукхинт / хелло / 1' \
-Х 'Тип садржаја: апплицатион / јсон' \
-д '"наме": "ЛинукХинт"' \
Ево шта добијамо овом командом:
Покушајмо сада да добијемо податке:
Добијање података
цурл -Кс ГЕТ 'хттп: // лоцалхост: 9200 / линукхинт / хелло / 1'Када покренемо ову наредбу, добијамо следећи излаз:
Закључак
У овој лекцији смо погледали како можемо почети да користимо ЕластицСеарцх који је одличан Аналитички механизам и пружа одличну подршку за претрагу слободног текста у скоро реалном времену.