Tak, zapewniając przeszukiwanie pełnotekstowe przez Lucene i przechowywania danych za pośrednictwem tradycyjnej bazy jest dobrze obsługiwany architektura. Take a look here, dla krótkiego wprowadzenia. Typową implementacją byłoby indeksowanie wszystkiego, co chcesz wesprzeć w wyszukiwaniu, i przechowywanie tylko unikalnego identyfikatora w indeksie Lucene, i pobieranie wszelkich znalezisk rekordów przez wyszukiwanie z bazy danych, w oparciu o identyfikator. Jeśli chcesz zmniejszyć obciążenie bazy danych, możesz zapisać niektóre informacje w Lucene, aby wyświetlić listę wyników wyszukiwania, i zapytać bazę danych tylko w celu pobrania pełnego dokumentu.
Jeśli chodzi o oszczędność miejsca, będzie pewna miara powielania. Jest to prawdą, nawet jeśli jesteś tylko Lucene. Lucene przechowuje odwrócony indeks używany do wyszukiwania całkowicie oddzielnie od przechowywanych danych. Aby zaoszczędzić miejsce, polecam bardzo dokładne wybieranie danych, które chcesz indeksować, i to, co chcesz zapisać, i móc je później odzyskać. To, co przechowujesz, jest szczególnie ważne dla zaoszczędzenia miejsca w Lucene, ponieważ wartości tylko indeksowane wydają się być w większości przypadków bardzo oszczędne.
Lucene z pewnością może zaimplementować wyszukiwanie znaczników. Prosty sposób, aby go wdrożyć byłoby dodać każdy znacznik do pola swojego wyboru (Zadzwonię jest „tagi”, co wydaje się mieć sens), podczas budowania dokumentu, takich jak:
document.add(new Field("tags", "widget", Field.Store.NO, Field.Index.ANALYZED));
document.add(new Field("tags", "forkids", Field.Store.NO, Field.Index.ANALYZED));
i mógłbym po prostu dodać wymagany termin do dowolnego zapytania, aby wyszukiwać tylko w obrębie określonego znacznika. Na przykład, gdybym szukał "pewnych rzeczy", ale tylko z tagiem "forkids", mógłbym napisać zapytanie takie jak:
some stuff +tags:forkids
Dzięki za odpowiedź. Czy twoim zdaniem utrzymanie dokumentów tylko w Lucene byłoby ogólną architekturą? czy jest jakikolwiek przypadek utrzymywania danych w bazie danych i lucenie? – soleiljy
Jeśli interesuje Cię tylko rzeczywista treść i niektóre metadane, nie widzę potrzeby korzystania z dodatkowej bazy danych. – Elmer