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.
Opisane API dostępne jest w oprogramowaniu o wersji minimum 3.0.2.0.2
. W wersjach wcześniejszych mechanizmy wyszukiwania spraw zdefiniowane były tylko w usługach CaseBusinessRest (SOAP: ICaseBusinessAction; Spring Remoting RMI: /CaseBusinessAction) oraz CaseBusinessExtRest, które odpowiadają za ogólne mechanizmy operacji przetwarzania spraw. Niestety, konieczność zachowania kompatybilności wstecz, nie pozwoliła, na rozbudowanie tych usług, o konieczne elementy. Aby sprawdzić wersję oprogramowania zobacz artykuł Jaka jest wersja mojego systemu?.
- CaseSearchRest - zbiór podstawowych metod wyszukiwania i agregacji danych. Serwis ma swoje odpowiedniki obsługujące protokoły SOAP ICaseSearchAction i Spring Remoting RMI /CaseSearchAction.
https://<nazwa_servera>:<port>/mercury-ws-app/rest/service/CaseSearchRest
https://<nazwa_servera>:<port>/mercury-ws-app/restServices/CaseSearchRest.wadl
gdzie:
<nazwa_servera>
- nazwa serwera, na którym zainstalowano aplikację Mercury DB (HgDB) 3.0,<port>
- port, na którym nasłuchuje aplikacja Mercury DB (HgDB) 3.0 (domyślnie jest to port8080
).
Przykład: https://testcluster.hgdb.io/mercury-ws-app/restServices/CaseSearchRest.wadl
- CaseSearchExtRest - rozszerzony zbiór dodatkowych metod związanych z wyszukiwaniem i agregacją. Usługa specjalna stworzona na potrzeby integracji między innymi z Grafana (oprogramowanie do analizy, monitorowania i wizualizacji danych) Dostępna tylko w obszarze usług REST.
https://<nazwa_servera>:<port>/mercury-ws-app/rest/service/CaseSearchExtRest
https://<nazwa_servera>:<port>/mercury-ws-app/restServices/CaseSearchExtRest.wadl
gdzie:
<nazwa_servera>
- nazwa serwera, na którym zainstalowano aplikację Mercury DB (HgDB) 3.0,<port>
- port, na którym nasłuchuje aplikacja Mercury DB (HgDB) 3.0 (domyślnie jest to port8080
).
Przykład: https://testcluster.hgdb.io/mercury-ws-app/restServices/CaseSearchExtRest.wadl
- CaseIndexerFieldsManagerRest - dodatkowa usługa utworzona w celu wsparcia mechanizmów budowania zapytań. Zawiera on szereg metod pozwalających na pobieranie informacji indeksowanych polach oraz ich statystykach - szczególnie przydatne gdy ktoś będzie chciał w przyszłości stworzyć kreator zapytań. Serwis ma swoje odpowiedniki obsługujące protokoły SOAP ICaseIndexerFieldsManagerAction i Spring Remoting RMI /ICaseIndexerFieldsManagerAction.
https://<nazwa_servera>:<port>/mercury-ws-app/rest/service/CaseIndexerFieldsManagerRest
https://<nazwa_servera>:<port>/mercury-ws-app/restServices/CaseIndexerFieldsManagerRest.wadl
gdzie:
<nazwa_servera>
- nazwa serwera, na którym zainstalowano aplikację Mercury DB (HgDB) 3.0,<port>
- port, na którym nasłuchuje aplikacja Mercury DB (HgDB) 3.0 (domyślnie jest to port8080
).
Przykład: https://testcluster.hgdb.io/mercury-ws-app/restServices/CaseSearchExtRest.wadl
📄️ 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.
📄️ Usługi wyszukiwania
Usługa jest generowana na podstawie interfejsu ICaseSearchAction, który implementuje usługi SOAP.
📄️ Rozszerzone usługi wyszukiwania
Przykład//testcluster.hgdb.io/mercury-ws-app/restServices/CaseSearchExtRest.wadl.
📄️ Usługi zarządzania polami indeksu
Przykład//testcluster.hgdb.io/mercury-ws-app/restServices/CaseIndexerFieldsManagerRest.wadl.
📄️ 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.