Indeks Lucene
Podstawą wyszukiwania w systemie Mercury DB jest Indeks Lucene. W niniejszy artykule przedstawione zostaną zasady tworzenia nazewnictwa pól, które są podstawą do realizacji zapytań wyszukiwania. Zaprezentowany zostanie również podział pól ze względu na ich rodzaj, kategorię (podział ze względu na pochodzenie pola) oraz sposób wyszukiwania (podział ze względu na typ pola).
Przykłady agregacji danych
Poniżej przykłady realizacji agregacji danych, które wykonano za pośrednictwem usługi CaseSearchExtRest#groupByQuery(POST). Składnia klauzuli **Group By** została opisana w artykule Zapytania indeksu Lucene. Przykłady zrealizowano przy wykorzystaniu narzędzia SoapUI.
Rozszerzone usługi wyszukiwania i agregacji danych - CaseSearchExt
Przykład//testcluster.hgdb.io/mercury-ws-app/restServices/CaseSearchExtRest.wadl.
Usługi wyszukiwania - CaseSearch
Usługa jest generowana na podstawie interfejsu ICaseSearchAction, który implementuje usługi SOAP.
Usługi wyszukiwania i agregacji danych
W systemie Mercury DB dostępne jest dostępne wiele usług realizujących różne metody wyszukiwania spraw zarówno w warstwie logicznej jak i biznesowej systemu. Aby ujednolicić i scentralizować utworzono dwie główne zawierającą kilka metod zaawansowanego wyszukiwania.
Usługi zarządzania polami indeksu - CaseIndexerFieldsManager
Przykład//testcluster.hgdb.io/mercury-ws-app/restServices/CaseIndexerFieldsManagerRest.wadl.
Wprowadzenie do Mercury DB (HgDB) 3.0
Mercury DB to serwer usług (SOAP oraz REST) pozwalający na zarządzanie dowolnymi obiektami, nazywanymi również sprawami. Jego silnik oparty jest o relacyjny model SQL (dane przechowywane są w relacyjnej bazie danych). Połączenie obiektów oraz relacji pozwala na wykorzystanie Mercury DB jako bazy danych obiektów obsługującej transakcje ACID (Atomicity, Consistency, Isolation, Durability czyli niepodzielność, spójność, izolacja, trwałość) jak i również zintegrowanie go z tradycyjnymi systemami BI (Business Intelligence) do analizy biznesowej danych. Łączy świat baz NoSQL (takich jak ElasticSearch, Mongo DB) ze światem baz relacyjnych (Oracle, DB2, PostgreSQL, MySQL).
Zapytania indeksu Lucene
Podstawowym mechanizmem wyszukiwania w bazie HgDB jest implementacja indeksu Apache Lucene. Lucene Core to biblioteka Java zapewniająca zaawansowane funkcje indeksowania i wyszukiwania, a także sprawdzanie pisowni, podświetlanie trafień i zaawansowane możliwości analizy. W niniejszym artykule zostaną opisane zasady tworzenia zapytań wyszukujących oraz agregujących jakie obowiązują w Mercury DB (HgDb) 3.0.