
Korzystanie z API Elasticsearch
Nasze doświadczenie mówi nam że największym problemem z rozpoczęciu pracy z Elasticsearch i Kibany jest zrozumienie jak załadować dane do Elasticsearch z zewnętrznych źródeł. Produkty firmy Elastic zwane są często w skórcie "stosem ELK" - od słów Elasticsearch, Logstash, Kibana. Elasticsearch to baza danych, silnik. Kibana to interfejs do zarządzania bazą, ustawieniami i wizualizowania danych. Logstash natomiast to narzędzie do ładowania danych do Elasticsearch. Narzędzie to potrafi czytać dane z wielu różnych źródeł i formatów; plików, baz danych, strumieni, zasobów internetowych.... około 40 formatów.
Jak rozpocząć przygodę z tym fantastycznym zestawem narzędzi jakim jest ELK opisaliśmy na blogu, w artykule "Elasticsearch w 15 minut". Tamten artykuł posiada rozdział "Ładujemy własne dane do Elasticsearch" który instruuje jak wgrać dane z pliku do Elasticsearch używając programu Logstash.
Gdybyśmy jednak skorzystać z innej formy wgrania danych do Elasticsearch, np. zintegrować Elasticsearch z aplikacją biznesową, mamy do dyspozycji REST API. Elastic oferuje szereg API które realują różne funkcje. Pełny spis interfejsów znajdziecie tutaj. Ponieważ interesuje nas ładowanie danych, skupimy się na API (kiliku API) które nazywają się Document API.

4 sposoby na digital marketing bez zgód marketinowych
Zacznijmy od ustalenia dlaczego do prowadzenia marketingu bezpośredniego w Internecie potrzebujemy zgód adresatów. Bardzo często w tym momencie pada zwrot "RODO". Rozporządzenie o Ochronie Danych Osobowych jest zestawem przepisów, które mówią przedsiębiorcom i konsumentom, do czego mają prawo w zakresie prywatnych informacji i jak należy się z nimi obchodzić. RODO bardzo często mylone jest z Prawem Telekomunikacyjnym.
Natomiast marketing bezpośredni kierowany za pomocą automatycznych wysyłek SMS, połączeń głosowych, IVR albo poczty elektronicznej wymaga zatem zgody udzielonej na gruncie Prawa Telekomunikacyjnego. Czyli RODO - pozyskiwanie i przechowywanie prywatnych informacji. Prawo Telekomunikacyjne (w tym ustawa o świadczeni usługi telekomunikacyjnych) - regulacje w zakresie marketingu bezpośredniego drogą elektroniczną.
To właśnie Prawo Telekomunikacyjne nie RODO zabrania wysyłki "niezamówionej informacji handlowej". Prawo to jest bardzo jasne i nie pozostawia żadnej wątpliwości co do interpretacji. Zatem "sztuczki" takie jak "wyślij pierwszą ofertę bez zgody", "adresat wiadomości domyślnie zgadza się na maile, nie możemy wysyłać tylko jeśli wyraźnie zaznaczy że nie wyraża zgody", "wysyłanie ofert z „RE:”, „Odp.:” w temacie e-maila" i podobne są zabronione - jest to niezamówiona informacja handlowa.

Kafka - platforma przesyłania strumieniowego
Kafka? Bardzo chętnie. Czyli klarowne, zrozumiałe objaśnienie czym naprawdę jest Kafka.
W Internecie znajdziecie mnóstwo artykułów o Kafce. Są te z bardzo ogólnym objaśnieniem co to takiego jest, są i tutoriale jak zainstalować Kafkę. Niewiele jest jednak artykułów które by pozwoliły szybko zrozumieć co do czego to oprogramowanie służy, jak działa, jaka jest różnica miedzy Kafką a innymi rozwiązaniami do wymiany informacji między systemami.
Zacznijmy od podstawy podstaw. Słyszeliście pewnie niejednokrotnie skrót "API". To "interfejs programistyczny aplikacji". Po angielsku będzie to brzmieć "application programming interface" (API). Jesli zadasz w Internecie pytanie "co to jest API", najprawdopodobniej trafisz na filmy pokazuące że "API jest jak kelner u którego składasz zamówienia na dania, napoje, drinki. Ty wybierasz z karty, a kelner realizuje Twoje zamówienie".
Ale nie potrzebujemy aż takiego łopatologicznego porównania. API to interfejs/funkcja dzięki któremy możesz wysłać do danej aplikacji/systemu dane i możesz je stamtąd odebrać. Nawet jeśli nie jesteś osobą ze świata informatyki łatwo możesz sobie wyobrazić sysutacje gdzie potrzebujesz np. wysłać do systemu kadrowego plik z przepracowanymi godzinami, pobrać z Internetu kody pocztowe przypisane do miast i województw, wysłać rozliczenie PIT. Ty wysyłasz plik, program po drugiej stronie wie jak go odebrać i co z nim zrobić. Albo; Ty potrzebujesz informacji, program po tamtej stronie wie jak ją przygotować i Ci ja dostarczyć.

Neo4j - wyszukiwanie podobnych fraz w bazie
Czasami w projekcie mamy potrzebę przeszukania zbioru i znalezienia podobnej frazy/zwrotu. Np. chcemy sprawdzić czy dane które wpisuje klient są poprawne a nie możemy zastosować zamkniętego słownika bo napewno nie obejmie wszystkich potencjalnych nazw. Innym przykładem może być znalezienie podobnego produktu w bazie danych; klient zwrócił się do nas z prośbą o wycenę produktu określonego przez niego jako 'Juoksentelisinkohan Hyppytyynytyydytys'. Szukamy w naszym katalogu produktów czy mamy taki lub podobny produtk. Jeśli nasza baza produktów zawiera więcej niż 100 tysięcy produktów, będzie nam bardzo trudno przeszukać ją ręcznie. Tym bardziej że produkt ''Juoksentelisinkohan Hyppytyynytyydytys'' to tylko jeden ze 150 o których wycenę poprosił klient. Potrzebujemy oprogramowania które wykona tę pracę za nas.
Istnieje całkiem sporo oprogramowania i algorytmów które przeznaczone są do takich właśnie funkcji. Np. wyszukiwanie 'full text' baz danych. Rezultaty są jednak kiepskie. Takie wyszukiwanie zwróci nam jedynie frazy które zawierają część wyszukiwanego słowa/słów. Full text jest zupełnie nieodporny na różny szyk zdania lub znaki narodowe. Istnieją algorytmy jak levenshtein ale i tutaj mamy podobny problem - ten algorytm nie radzi sobie zupełnie z przestawionym szykiem wyrazów. Mamy w końcu gotowe biblioteki jak choćby biblioteka dla Javascript, fuzzyset, która daje bardzo dobre rezultaty ale przeszukanie bazy danych z kilkuset tysiącami produktów jest bardzo problematyczne.
Istnieje jednak produkt który wydaje się oferować zadawalającą jakość i szybkość. Tym oprogramowaniem jest Neo4j.