Dodaj wyszukiwanie pełnotekstowe Elasticsearch do NextCloud

Aby przeszukiwać zawartość plików w NextCloud, zainstaluj platformę wyszukiwania pełnotekstowego, jej aplikację platformy Elasticsearch oraz dostawcę plików. Następnie połącz aplikacje z kompatybilnym serwerem Elasticsearch 8 i utwórz indeks. W ten sposób uzyskasz możliwość przeszukiwania tekstu w dokumentach, a także osobną usługę do zabezpieczania, monitorowania i konserwacji. Aktualny plik README łącznika wskazuje Elasticsearch 8 jako obsługiwaną wersję główną, dlatego przed wyborem konkretnej wersji Elasticsearch sprawdź zgodność z zainstalowaną wersją aplikacji.

Wybierz konfigurację odpowiednią dla Twojego serwera

Elasticsearch pomaga użytkownikom wyszukiwać słowa w dokumentach, wykraczając poza nazwy plików i podstawowe metadane. Kompromisem jest konieczność zabezpieczenia i utrzymania kolejnej usługi, a także wykorzystanie pamięci, dysku i procesora podczas indeksowania. Mała chmura może nie uzasadniać takiego obciążenia; zespół zajmujący się głównie dokumentami może uznać wyszukiwanie treści za warte swojej ceny.

Integrację tworzą trzy aplikacje: wyszukiwanie pełnotekstowe koordynuje dostawcę i platformę, Elasticsearch łączy framework z silnikiem, a Files dostarcza zawartość plików. Jednocześnie można wybrać tylko jedną aplikację platformy. Zobacz plik README frameworka i plik README dostawcy plików .

Te przykłady dla Linuksa wykorzystują ścieżki i www-datakonta Debiana lub Ubuntu. Dostosuj ścieżki i użytkowników usług dla kontenerów lub innych dystrybucji.

1. Potwierdź zgodność i przygotuj Elasticsearch

Przed zainstalowaniem Elasticsearch sprawdź wersję Nextcloud i aplikacji. Plik README konektora informuje, że od wersji aplikacji 26.0.0 obsługuje on Elasticsearch 8. Nie zakładaj, że Elasticsearch 9 jest zgodny, ponieważ jest nowszy; sprawdź plik README konektora i wiki instalacji dla swojej wersji.

Zainstaluj Elasticsearch zgodnie z instrukcjami Elastic dla swojego systemu operacyjnego i kompatybilnej wersji głównej. Pakiet Elastic w Debianie zawiera dołączone OpenJDK, więc zazwyczaj nie jest wymagana osobna instalacja Javy dla tego pakietu. Zapoznaj się z dokumentacją instalacji pakietu Elastic w Debianie . Dostęp do Elasticsearch powinien być możliwy tylko z hosta Nextcloud lub prywatnej sieci aplikacji, chyba że architektura wymaga inaczej. Elasticsearch 8 włącza funkcje bezpieczeństwa podczas instalacji pakietu; zachowuje uwierzytelnianie i TLS dla wdrożeń sieciowych i nigdy nie udostępnia nieuwierzytelnionego punktu końcowego wyszukiwania w publicznym Internecie.

Po uruchomieniu usługi przetestuj jej punkt końcowy lokalnie, używając schematu i poświadczeń ustalonych podczas instalacji. W przypadku lokalnej, zabezpieczonej instancji, żądanie może wyglądać następująco curl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200: wprowadź hasło po wyświetleniu monitu, zamiast umieszczać je w historii powłoki. Użyj certyfikatu CA wygenerowanego dla instalacji, a nie ścieżki zastępczej. Pomyślna odpowiedź powinna zidentyfikować węzeł i wersję Elasticsearch. Jeśli to sprawdzenie się nie powiedzie, napraw usługę, zaufanie certyfikatu lub poświadczenia przed skonfigurowaniem NextCloud.

2. Zainstaluj aplikacje wyszukiwania NextCloud

Użyj strony Aplikacje Nextcloud, aby zainstalować i włączyć wyszukiwanie pełnotekstowe , wyszukiwanie pełnotekstowe – Platforma Elasticsearch oraz wyszukiwanie pełnotekstowe – Pliki . Możesz również użyć occnarzędzia administracyjnego wiersza poleceń Nextcloud z poziomu katalogu instalacyjnego Nextcloud. W instalacji Debian lub Ubuntu wzorzec wygląda następująco:

cd /var/www/nextcloud
sudo -E -u www-data php occ app:install fulltextsearch
sudo -E -u www-data php occ app:install fulltextsearch_elasticsearch
sudo -E -u www-data php occ app:install files_fulltextsearch

Użyj konta HTTP swojej dystrybucji i postępuj zgodnie ze wskazówkami Nextcloud dotyczącymi occ . Jeśli aplikacja jest zainstalowana, ale wyłączona, użyj [brakuje informacji occ occ app:enable APP_ID]. Zachowaj zgodność wszystkich trzech aplikacji z wersją Nextcloud.

3. Skonfiguruj platformę i dostawcę plików

Otwórz ustawienia administratora i wybierz sekcję „Wyszukiwanie pełnotekstowe”. Wybierz Elasticsearch jako platformę wyszukiwania, a następnie wprowadź adres serwletu Elasticsearch, nazwę indeksu oraz wszelkie wymagane dane uwierzytelniające połączenia lub ustawienia certyfikatu udostępnione przez zainstalowaną wersję łącznika. Adres musi być dostępny z poziomu procesu serwera Nextcloud. Jeśli obie usługi działają w tej samej sieci kontenerów, localhostzazwyczaj wskazuje on sam kontener Nextcloud, a nie kontener Elasticsearch; zamiast tego użyj nazwy usługi Elasticsearch lub wewnętrznej nazwy hosta.

Użyj nazwy indeksu z małymi literami, np. nextcloud; nadaj każdej chmurze osobny indeks, jeśli współdzielą usługę. Oddzielne nazwy ułatwiają administrację, ale nie zastępują kontroli dostępu. Nie podawaj danych uwierzytelniających w zrzutach ekranu, biletach ani historii powłoki.

W ustawieniach dostawcy plików włącz indeksowanie dla typów plików i zakresu rozmiarów potrzebnych użytkownikom. Dostępność przeszukiwalnej zawartości zależy od dostawcy i obsługi ekstrakcji; samo indeksowanie nazw plików nie sprawi, że tekst w pliku PDF będzie przeszukiwalny. Procesor załączników Elasticsearch wyodrębnia tekst z popularnych formatów plików, takich jak PDF i dokumenty Office, ale obowiązują limity ekstrakcji i obsługiwane formaty. W Elasticsearch 8 funkcja pobierania załączników jest zawarta w dystrybucji; patrz dokumentacja dotycząca procesora załączników Elasticsearch . W przypadku skanów lub obrazów, zwykła ekstrakcja tekstu z dokumentu nie jest funkcją OCR: dodaj dostawcę OCR tylko wtedy, gdy potrzebujesz tej funkcji i sprawdziłeś jego wymagania. Zachowaj restrykcyjne limity rozmiaru plików na serwerze o ograniczonych zasobach.

4. Zbuduj indeks i dbaj o jego aktualność

Przed indeksowaniem przeprowadź kontrolę stanu. Z katalogu Nextcloud użyj:

sudo -E -u www-data php occ fulltextsearch:check

Najpierw rozwiąż zgłoszone błędy połączenia, platformy lub dostawcy. Następnie uruchom indeksowanie początkowe:

sudo -E -u www-data php occ fulltextsearch:index

Pierwsze uruchomienie przeszukuje pliki wybranych użytkowników i może zająć dużo czasu. Utrzymuj stabilną sesję SSH lub uruchom polecenie w multiplekserze terminala, takim jak [ tmuxbrakuje kontekstu - brakuje ...

W przypadku bieżących aktualizacji upewnij się, że zadania w tle Nextcloud działają niezawodnie. Projekt dokumentuje również fulltextsearch:livepracownika do indeksowania niemal natychmiastowego; może to zmniejszyć opóźnienie aktualizacji, ale dodaje usługę do nadzorowania. Zacznij od zadań zaplanowanych i dodawaj pracownika tylko wtedy, gdy opóźnienie ma znaczenie. Dostosuj przykład usługi nadrzędnej do swoich ścieżek, konta i kolejności uruchamiania bazy danych.

Sprawdź wynik i wybierz kompromis

Po zakończeniu indeksowania wyszukaj charakterystyczną frazę, która pojawia się w małym dokumencie testowym, ale nie w jego nazwie pliku. Upewnij się, że Nextcloud zwraca oczekiwany plik użytkownikowi, który ma uprawnienia do jego odczytu. Następnie prześlij lub edytuj drugi dokument testowy, zezwól na uruchomienie skonfigurowanego zadania w tle lub aktywnego procesu roboczego i powtórz wyszukiwanie. Samo pomyślne sprawdzenie statusu nie dowodzi, że zawartość pliku została zindeksowana.

Jeśli wyświetlane są tylko nazwy plików, sprawdź dostawcę plików, ustawienia typu i rozmiaru pliku, obsługę ekstrakcji oraz dzienniki indeksowania. W przypadku awarii połączenia sprawdź punkt końcowy w sieci NextCloud, zaufanie TLS i dane uwierzytelniające.

Wybierz Elasticsearch, gdy wyszukiwanie treści jest na tyle cenne, że uzasadnia utrzymanie kolejnej usługi stanowej. Jeśli wyszukiwanie według nazw plików jest wystarczające, pomiń ten dodatkowy narzut na zasoby i bezpieczeństwo. Przed uaktualnieniem do wersji produkcyjnej sprawdź dokładną kombinację NextCloud, aplikacji i Elasticsearch; ta konfiguracja nie zapewnia obsługi każdej metody wdrożenia.

Zostaw komentarz

Uruchom automatycznie Nextcloud Cron za pomocą timera Systemd

Sprawdź tryb cron Nextcloud, napraw usługę systemd i timer oraz zweryfikuj, czy zadania w tle są uruchamiane po uruchomieniu i co pięć minut.

Usuń ostrzeżenie o blokowaniu plików w NextCloud za pomocą Redis

Włącz niezawodne blokowanie plików Nextcloud, wybierz odpowiedni serwer Redis lub Valkey i sprawdź, czy ostrzeżenie zostanie usunięte bez ryzyka równoczesnych zmian w plikach.

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Co jest potrzebne, aby uzyskać ocenę bezpieczeństwa Nextcloud A+

Napraw typowe błędy skanowania Nextcloud dzięki bieżącym aktualizacjom, protokołom HTTPS i HSTS, precyzyjnemu zaufaniu do odwrotnego serwera proxy i sprawdzeniu względem serwera publicznego.

Włącz szyfrowanie po stronie serwera Nextcloud z mierzalnym wpływem

Skonfiguruj Nextcloud SSE dla pamięci masowej, która tego wymaga, chroń klucze szyfrujące i zmierz wpływ transferu i procesora przed zaszyfrowaniem istniejących plików.

Dodaj wyszukiwanie pełnotekstowe Elasticsearch do NextCloud

Połącz wyszukiwarkę plików Nextcloud z Elasticsearch, zindeksuj zawartość dokumentów i wybierz konfigurację odpowiadającą Twoim potrzebom w zakresie serwera i bezpieczeństwa.

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Ustaw niezawodną politykę wygasania dla usuniętych plików w usłudze NextCloud

Skonfiguruj Nextcloud tak, aby usuwał usunięte pliki po upływie określonego czasu przechowywania, niezawodnie planował zadania w tle i unikał poleceń, które usuwają śmieci każdego użytkownika.

Ostrzeżenie o braku indeksów bazy danych NextCloud

Ostrzeżenie o braku indeksów bazy danych NextCloud

Wykonaj bezpieczną naprawę OCC w Nextcloud, przejrzyj zmiany w bazie danych i sprawdź, dlaczego ostrzeżenie może nadal się pojawiać.

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zwiększ limit przesyłania danych do sieci w NextCloud powyżej 2 GB

Zezwól na przesyłanie większych plików przez przeglądarkę Nextcloud, dostosowując ustawienia PHP, Nginx lub Apache, tymczasowego miejsca przechowywania i limitu czasu — i sprawdź, który limit blokuje plik.

Wyczyść ostrzeżenie Nextcloud dotyczące pamięci PHP na serwerze WWW

Ustaw limit pamięci PHP, z którego faktycznie korzysta Nextcloud, uruchom ponownie odpowiednią usługę i potwierdź ustawienie 512 MB w przeglądzie administratora.

Podłącz kontener zgodny z S3 do zewnętrznej pamięci masowej NextCloud

Zamontuj zgodny obiekt pamięci masowej w Nextcloud, korzystając z zaplecza S3, z odpowiednim punktem końcowym, poświadczeniami, zakresem dostępu i krokami weryfikacji.