Neo4J używa lucene jako część swojej legacy indexing. Obecnie Neo4J obsługuje kilka rodzajów indeksów, takich jak tworzenie etykiet na węzłach i indeksy właściwości węzłów.
Ale zanim neo4j obsługiwał te nowe funkcje, głównie (i wciąż) używał Lucene do indeksowania. Większość programistów tworzyłoby lucene indeksy na poszczególnych właściwościach węzła, aby umożliwić im wykorzystanie składni kwerendy lucene do znajdowania węzłów w zapytaniu kwerendowym.
Na przykład, jeśli created an index according to the documentation, można następnie przeszukać indeks dla poszczególnych wartości tak:
IndexHits<Node> hits = actors.get("name", "Keanu Reeves");
Node reeves = hits.getSingle();
To Lucene za kulisami, że rzeczywiście robi tego stwierdzenia.
W Cypher, może to wyglądać tak:
start n=node:node_auto_index('name:M* OR name:N*')
return n;
W tym przypadku, szukasz konkretnego indeksu dla wszystkich węzłów, które mają właściwość nazwie zaczynającej albo z „M” lub " N ". Co jest w środku tego pojedynczego wyrażenia cytatu, istnieje tylko zapytanie zgodne z the lucene query syntax.
OK, więc tak właśnie Neo4J używa lucenu. W najnowszych wersjach używam tylko tych "starszych indeksów" do indeksowania pełnotekstowego, gdzie jest siła lucena. Jeśli chcę tylko szybkich kontroli równości (gdzie nazwa = "Neo"), wtedy używam regular neo4j schema indexes.
Jeśli chodzi o Solr, nie widziałem, aby był używany w połączeniu z neo4j - może ktoś wskoczy i będzie stanowić kontrprzykład, ale zazwyczaj myślę o Solr jako o działaniu na duży wskaźnik lucowy, aw przypadek neo4j, jest w środku, i nie jestem pewien, czy bieganie Solr będzie dobre.
Jeśli chcesz napisać aplikację do wyszukiwania i analizowania danych, nie mogę dać ci rekomendacji - Neo4J lub Solr mogą pomóc, w zależności od aplikacji i tego, co chcesz zrobić. Ogólnie rzecz biorąc, użyj neo4j, gdy potrzebujesz wyrazić i przeszukać wykresy. Użyj Solr więcej, gdy potrzebujesz uporządkować i przeszukać duże ilości dokumentów tekstowych.
Być może powinieneś wyjaśnić więcej o swoim konkretnym przypadku użycia. Co właściwie chcesz osiągnąć? –
OK, mam informacje o pracownikach - jego imię i nazwisko, adres domowy, adres firmy, nazwa firmy, ph itd. Aplikacja oferuje stronę wyszukiwania, na której można wyszukiwać według różnych kryteriów, takich jak nazwa/(h/c) adres, wynikiem jest dopasowanie pracownika do kryteriów wyszukiwania i pracowników związanych z kryteriami wyszukiwania (np. w zależności od adresu lub ..) wynik powinien być odpowiedni do zamówienia wyniku. – Shri