Ово је наставак претходног чланка. Покриваћемо како да прецизирате упит, формулишете сложеније критеријуме претраге са различитим параметрима и разумемо различите веб обрасце странице упита Апацхе Солр. Такође, разговараћемо о томе како накнадно обрадити резултат претраге користећи различите излазне формате као што су КСМЛ, ЦСВ и ЈСОН.
Упит Апацхе Солр
Апацхе Солр је дизајниран као веб апликација и услуга која ради у позадини. Резултат је да било која клијентска апликација може комуницирати са Солр-ом тако што ће му слати упите (фокус овог чланка), манипулишући језгром документа додавањем, ажурирањем и брисањем индексираних података и оптимизацијом основних података. Постоје две могућности - преко контролне табле / веб интерфејса или помоћу АПИ-ја слањем одговарајућег захтева.
Уобичајено је користити прва опција ради тестирања, а не ради редовног приступа. На слици испод приказана је контролна табла из корисничког интерфејса Апацхе Солр Администратион са различитим обрасцима упита у веб прегледачу Фирефок.
Прво, из менија испод поља за одабир језгра, одаберите ставку у менију „Упит“. Даље, контролна табла ће приказати неколико поља за унос на следећи начин:
- Обрађивач захтева (кт):
Дефинишите коју врсту захтева желите да пошаљете компанији Солр. Можете бирати између заданих руковалаца захтевима „/ селецт“ (упит индексираних података), „/ упдате“ (ажурирање индексираних података) и „/ делете“ (уклањање наведених индексираних података) или само-дефинисаног. - Догађај упита (к):
Дефинишите која поља и вредности ће бити изабрана. - Филтрирај упите (фк):
Ограничите набор докумената који се могу вратити без утицаја на резултат документа. - Редослед (сортирање):
Дефинишите редослед сортирања резултата упита према растућем или опадајућем - Излазни прозор (почетак и редови):
Ограничите излаз на наведене елементе - Листа поља (фл):
Информације ограничене на одговор на упит ограничавају на наведену листу поља. - Излазни формат (вт):
Дефинишите жељени излазни формат. Подразумевана вредност је ЈСОН.
Кликом на дугме Изврши упит покреће се жељени захтев. За практичне примере погледајте испод.
Као друга опција, можете послати захтев помоћу АПИ-ја. Ово је ХТТП захтев који било која апликација може послати Апацхе Солр-у. Солр обрађује захтев и враћа одговор. Посебан случај је повезивање са Апацхе Солр путем Јава АПИ-ја. Ово је препуштено одвојеном пројекту који се зове СолрЈ [7] - Јава АПИ без потребе за ХТТП везом.
Синтакса упита
Синтакса упита је најбоље описана у [3] и [5]. Различити називи параметара директно одговарају именима поља за унос у претходно објашњеним обрасцима. Табела испод их наводи, плус практични примери.
Индекс параметара упита
Параметар | Опис | Пример |
---|---|---|
к | Главни параметар упита Апацхе Солр - имена поља и вредности. Оцене њихове сличности документују изразе у овом параметру. | Ид: 5 аутомобили: * адилла * *: Кс5 |
фк | Ограничите скуп резултата на надскупове докумената који се подударају са филтером, на пример, дефинисани помоћу Парсер упита упита опсега функција | модел ид, модел |
почетак | Помици за резултате странице (почетак). Подразумевана вредност овог параметра је 0. | 5 |
редови | Одступања за резултате странице (крај). Вредност овог параметра је подразумевано 10 | 15 |
врста | Одређује листу поља раздвојених зарезима, на основу којих ће се сортирати резултати упита | модел узлазно |
фл | Одређује листу поља која ће се вратити за све документе у скупу резултата | модел ид, модел |
вт | Овај параметар представља врсту писца одговора за који смо желели да видимо резултат. Вредност овог је подразумевано ЈСОН. | јсон кмл |
Претраге се врше путем ХТТП ГЕТ захтева са низом упита у параметру к. Следећи примери ће појаснити како ово функционише. У употреби је цурл за слање упита Солр-у који је инсталиран локално.
- Преузмите све скупове података из основног аутомобила цурл хттп: // лоцалхост: 8983 / солр / царс / куери?к = *: *
- Преузмите све скупове података из основних аутомобила који имају ид 5 цурл хттп: // лоцалхост: 8983 / солр / царс / куери?к = ид: 5
- Преузмите модел поља из свих скупова података основних аутомобила
Опција 1 (са пребеглим и): цурл хттп: // лоцалхост: 8983 / солр / царс / куери?к = ид: * \ & фл = моделОпција 2 (упит у појединачним тиковима):
цурл 'хттп: // лоцалхост: 8983 / солр / царс / куери?к = ид: * & фл = модел ' - Дохватите све скупове података основних аутомобила сортиране према цени у опадајућем редоследу и изнесите само поља маке, модел и цена (верзија у појединачним тиковима): цурл хттп: // лоцалхост: 8983 / солр / царс / куери -д '
к = *: * &
сорт = цена опис &
фл = марка, модел, цена ' - Дохватите првих пет скупова података основних аутомобила сортираних по цени у опадајућем редоследу и изнесите само поља маке, модел и цена (верзија у појединачним тиковима): цурл хттп: // лоцалхост: 8983 / солр / царс / куери - д '
к = *: * &
редови = 5 &
сорт = цена опис &
фл = марка, модел, цена ' - Дохватите првих пет скупова података основних аутомобила сортираних по цени у опадајућем редоследу и изнесите поља марке, модел и цену, као и његову релевантност, само (верзија у појединачним тиковима): цурл хттп: // лоцалхост: 8983 / солр / аутомобили / упит -д '
к = *: * &
редови = 5 &
сорт = цена опис &
фл = марка, модел, цена, оцена ' - Врати сва сачувана поља као и оцену релевантности: цурл хттп: // лоцалхост: 8983 / солр / царс / куери -д '
к = *: * &
фл = *, резултат '
Даље, можете дефинисати свој властити руковатељ захтевима да шаље опционалне параметре захтева парсеру упита како би се контролисало које се информације враћају.
Куери Парсерс
Апацхе Солр користи такозвани парсер упита - компоненту која преводи ваш низ претраживања у посебна упутства за претраживач. Анализатор упита стоји између вас и документа који тражите.
Солр долази са разним типовима рашчлањивача који се разликују у начину на који се обрађује послати упит. Стандардни анализатор упита добро функционише за структуриране упите, али је мање толерантан према синтаксним грешкама. Истовремено, ДисМак и Ектендед ДисМак Куери Парсер оптимизовани су за упите сличне природном језику. Дизајнирани су за обраду једноставних фраза које су унели корисници и за тражење појединачних појмова у неколико поља користећи различито пондерисање.
Штавише, Солр такође нуди такозване Фунцтион Куериес (Функцијски упити) који омогућавају комбиновање функције са упитом како би се генерисала одређена оцена релевантности. Ови парсери се називају Фунцтион Куери Парсер и Фунцтион Ранге Куери Парсер. Пример у наставку приказује последњи за одабир свих скупова података за „бмв“ (ускладиштене у пољу података података маке) са моделима од 318 до 323:
цурл хттп: // лоцалхост: 8983 / солр / царс / куери -д 'к = маке: бмв &
фк = модел: [318 ДО 323] '
Пост-обрада резултата
Слање упита Апацхе Солр је један део, али други обрађује резултат претраге. Прво, можете бирати између различитих формата одговора - од ЈСОН-а до КСМЛ-а, ЦСВ-а и поједностављеног Руби формата. Једноставно наведите одговарајући вт параметар у упиту. Пример кода у наставку показује ово за преузимање скупа података у ЦСВ формату за све ставке које користе цурл са есцапеед &:
цурл хттп: // лоцалхост: 8983 / солр / царс / куери?к = ид: 5 \ & вт = цсвРезултат је листа одвојена зарезима како следи:
Да бисте добили резултат као КСМЛ податке, али два излазна поља чине и моделирају, покрените следећи упит:
цурл хттп: // лоцалхост: 8983 / солр / царс / куери?к = *: * \ & фл = маке, модел \ & вт = кмлИзлаз је различит и садржи и заглавље одговора и стварни одговор:
Вгет једноставно штампа примљене податке на стдоут. Ово вам омогућава накнадну обраду одговора помоћу стандардних алата за наредбени ред. Да наведемо неколико, овај садржи јк [9] за ЈСОН, кслтпроц, кидел, кмлстарлет [10] за КСМЛ, као и цсвкит [11] за ЦСВ формат.
Закључак
Овај чланак приказује различите начине слања упита у Апацхе Солр и објашњава како се обрађује резултат претраге. У следећем делу ћете научити како да користите Апацхе Солр за претрагу у ПостгреСКЛ-у, релационом систему управљања базама података.
О ауторима
Јацкуи Кабета је екологиња, страствени истраживач, тренер и ментор. У неколико афричких земаља радила је у ИТ индустрији и НВО окружењу.
Франк Хофманн је информатички програмер, тренер и аутор и више воли да ради из Берлина, Женеве и Кејптауна. Коаутор књиге за управљање пакетима Дебиан доступне на дпмб.орг
Везе и референце
- [1] Апацхе Солр, хттпс: // луцен.апацхе.орг / солр /
- [2] Франк Хофманн и Јацкуи Кабета: Увод у Апацхе Солр. 1. део, хттп: // линукхинт.цом
- [3] Ионик Сеелаи: Синрима упита Солр, хттп: // ионик.цом / солр / куери-синтак /
- [4] Ионик Сеелаи: Солр Туториал, хттп: // ионик.цом / солр-туториал /
- [5] Апацхе Солр: Упитивање података, Туториалспоинт, хттпс: // ввв.туториалспоинт.цом / апацхе_солр / апацхе_солр_куериинг_дата.хтм
- [6] Луцен, хттпс: // луцен.апацхе.орг /
- [7] СолрЈ, хттпс: // луцен.апацхе.орг / солр / гуиде / 8_8 / усинг-солрј.хтмл
- [8] цурл, хттпс: // цурл.се /
- [9] јк, хттпс: // гитхуб.цом / стедолан / јк
- [10] кмлстарлет, хттп: // кмлстар.соурцефорге.нет /
- [11] цсвкит, хттпс: // цсвкит.реадтхедоцс.ио / ен / најновије /