Voeg Elasticsearch Full-Text Search toe aan Nextcloud

Om in Nextcloud in de inhoud van bestanden te zoeken, installeer je het framework voor full-text zoeken, de bijbehorende Elasticsearch-platformapp en de Files-provider. Verbind vervolgens de apps met een compatibele Elasticsearch 8-server en bouw de index. Dit voegt doorzoekbare documenttekst toe, maar vereist ook een aparte service voor beveiliging, monitoring en onderhoud. In de README van de connector wordt Elasticsearch 8 als ondersteunde hoofdversie vermeld. Controleer daarom de compatibiliteit met de door jou geïnstalleerde app-versie voordat je een specifieke Elasticsearch-versie selecteert.

Kies de configuratie die bij uw server past.

Elasticsearch helpt gebruikers woorden in documenten te vinden, naast bestandsnamen en basismetadata. De keerzijde is een extra service die beveiligd en onderhouden moet worden, plus geheugen-, schijf- en CPU-gebruik tijdens het indexeren. Een kleine cloud rechtvaardigt deze extra kosten mogelijk niet; een team dat veel met documenten werkt, kan de kosten van content search echter wel de moeite waard vinden.

De integratie bestaat uit drie apps: Full Text Search coördineert de provider en het platform, Elasticsearch verbindt het framework met de zoekmachine en Files levert de bestandsinhoud. Er kan slechts één platformapp tegelijk worden geselecteerd. Zie de README van het framework en de README van de Files-provider .

Deze Linux-voorbeelden gebruiken Debian- of Ubuntu-paden en www-data-accounts. Pas de paden en servicegebruikers aan voor containers of andere distributies.

1. Controleer de compatibiliteit en bereid Elasticsearch voor.

Controleer je Nextcloud- en app-versies voordat je Elasticsearch installeert. In de README van de connector staat dat Elasticsearch 8 wordt ondersteund vanaf app-versie 26.0.0. Ga er niet vanuit dat Elasticsearch 9 compatibel is omdat het een nieuwere versie is; raadpleeg de README van de connector en de installatiewiki voor jouw specifieke versie.

Installeer Elasticsearch volgens de instructies van Elastic voor uw besturingssysteem en de compatibele hoofdversie. Het Debian-pakket van Elastic bevat een gebundelde OpenJDK, dus een aparte Java-installatie is normaal gesproken niet nodig voor dat pakket. Zie de documentatie voor pakketinstallatie van Elastic voor Debian . Zorg ervoor dat Elasticsearch alleen bereikbaar is vanaf de Nextcloud-host of een privé-applicatienetwerk, tenzij uw architectuur anders vereist. Elasticsearch 8 activeert beveiligingsfuncties tijdens de pakketinstallatie; behoud authenticatie en TLS voor netwerkimplementaties en stel nooit een niet-geauthenticeerd zoek-eindpunt bloot aan het openbare internet.

Zodra de service is gestart, test u het eindpunt lokaal met behulp van het schema en de referenties die tijdens de installatie zijn ingesteld. Voor een lokaal beveiligde instantie kan een verzoek er als volgt uitzien curl --cacert /path/to/http_ca.crt -u elastic https://localhost:9200: ; voer het wachtwoord in wanneer daarom wordt gevraagd in plaats van het in de shellgeschiedenis op te slaan. Gebruik het CA-certificaat dat voor uw installatie is gegenereerd, niet het placeholder-pad. Een succesvolle reactie moet het Elasticsearch-knooppunt en de versie identificeren. Als deze controle mislukt, corrigeert u de service, het certificaatvertrouwen of de referenties voordat u Nextcloud configureert.

2. Installeer de Nextcloud-zoekapps

Gebruik de pagina 'Apps' van Nextcloud om de volgende apps te installeren en in te schakelen: Volledige tekst zoeken , Volledige tekst zoeken - Elasticsearch Platform en Volledige tekst zoeken - Bestanden . Je kunt ook occde opdrachtregeltool van Nextcloud gebruiken vanuit de installatiemap van Nextcloud. Op een Debian- of Ubuntu-installatie is het patroon als volgt:

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

Gebruik het HTTP-account van uw distributie en volg de occ-richtlijnen van Nextcloud . Als een app is geïnstalleerd maar uitgeschakeld, gebruik dan occ app:enable APP_ID. Zorg ervoor dat alle drie de apps compatibel zijn met uw Nextcloud-release.

3. Configureer het platform en de bestandsaanbieder.

Open de beheerdersinstellingen en selecteer het gedeelte 'Volledige tekst zoeken'. Kies Elasticsearch als zoekplatform en voer vervolgens het adres van de Elasticsearch-servlet, een indexnaam en eventuele vereiste verbindingsgegevens of certificaatinstellingen in die beschikbaar zijn gesteld door uw geïnstalleerde connectorversie. Het adres moet bereikbaar zijn vanaf het Nextcloud-serverproces. Als beide services in hetzelfde containernetwerk draaien, localhostverwijst het adres meestal naar de Nextcloud-container zelf, niet naar de Elasticsearch-container; gebruik in dat geval de Elasticsearch-servicenaam of interne hostnaam.

Gebruik een indexnaam in kleine letters, bijvoorbeeld nextcloud; geef elke cloud een aparte index als ze een service delen. Aparte namen vereenvoudigen het beheer, maar vervangen geen toegangscontroles. Houd inloggegevens buiten schermafbeeldingen, tickets en shellgeschiedenis.

Schakel in de instellingen van de bestandsprovider indexering in voor de bestandstypen en het groottebereik dat uw gebruikers nodig hebben. Doorzoekbare inhoud is afhankelijk van de provider en de ondersteuning voor extractie; het indexeren van bestandsnamen alleen maakt tekst in een PDF niet doorzoekbaar. De bijlageprocessor van Elasticsearch extraheert tekst uit gangbare bestandsformaten zoals PDF en Office-documenten, maar er gelden extractielimieten en ondersteunde formaten. In Elasticsearch 8 is de functionaliteit voor het importeren van bijlagen standaard opgenomen; zie de referentie van de bijlageprocessor van Elastic . Voor scans of afbeeldingen is gewone tekstextractie uit documenten geen OCR: voeg alleen een OCR-provider toe als u die functionaliteit nodig hebt en de vereisten ervan hebt gecontroleerd. Houd de limieten voor bestandsgrootte beperkt op een server met beperkte resources.

4. Bouw de index op en houd deze actueel.

Voer een gezondheidscontrole uit voordat u gaat indexeren. Gebruik hiervoor de volgende opdracht vanuit de Nextcloud-directory:

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

Los eerst de gemelde verbindings-, platform- of providerfouten op. Start daarna de initiële indexering:

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

De eerste keer dat de indexering wordt uitgevoerd, worden de bestanden van de geselecteerde gebruikers doorzocht. Dit kan lang duren. Zorg ervoor dat de SSH-sessie stabiel blijft of voer de opdracht uit in een terminalmultiplexer zoals ` tmuxmv` en controleer het CPU-gebruik, het geheugen en de schijfruimte. Indexering kopieert de geëxtraheerde tekst en bestandsmetadata naar Elasticsearch; dit is geen vervanging voor Nextcloud-backups. Zorg ervoor dat de zoekindex en de bijbehorende inloggegevens worden beschermd en houd er rekening mee dat het verwijderen of opnieuw opbouwen van de index een volledige indexeringsronde kan vereisen.

Zorg ervoor dat Nextcloud-achtergrondtaken betrouwbaar werken bij doorlopende updates. Het project beschrijft ook een fulltextsearch:liveworker voor bijna onmiddellijke indexering; dit kan de updatevertraging verminderen, maar voegt wel een extra service toe die toezicht vereist. Begin met geplande taken en voeg de worker alleen toe als de vertraging een probleem vormt. Pas het voorbeeld van de upstream-service aan uw paden, account en opstartvolgorde van de database aan.

Controleer het resultaat en maak je afweging.

Nadat het indexeren is voltooid, zoekt u naar een opvallende zin die voorkomt in een klein testdocument, maar niet in de bestandsnaam. Controleer of Nextcloud het verwachte bestand retourneert voor een gebruiker met leesrechten. Upload of bewerk vervolgens een tweede testdocument, laat de geconfigureerde achtergrondtaak of live worker draaien en herhaal de zoekopdracht. Een succesvolle statuscontrole bewijst op zich niet dat de bestandsinhoud is geïndexeerd.

Als alleen bestandsnamen worden weergegeven, controleer dan de instellingen voor de bestandsprovider, het bestandstype en de -grootte, de extractieondersteuning en de indexeringslogboeken. Controleer bij verbindingsproblemen het eindpunt in het Nextcloud-netwerk, het TLS-vertrouwen en de inloggegevens.

Kies Elasticsearch wanneer zoeken op inhoud waardevol genoeg is om het onderhouden van een extra stateful service te rechtvaardigen. Als zoeken op bestandsnaam voldoende is, sla dan die extra resources en beveiligingskosten over. Controleer vóór productie-upgrades de exacte combinatie van Nextcloud, app en Elasticsearch; deze configuratie biedt geen ondersteuning voor elke implementatiemethode.

Laat een reactie achter

Wat er nodig is om een ​​A+ beveiligingsrating voor Nextcloud te behalen

Wat er nodig is om een ​​A+ beveiligingsrating voor Nextcloud te behalen

Los veelvoorkomende Nextcloud-scanbevindingen op met de nieuwste updates, HTTPS en HSTS, nauwkeurige reverse-proxy-vertrouwensinstellingen en controles op de openbare server.

Schakel Nextcloud-serverversleuteling in met meetbare impact.

Configureer Nextcloud SSE voor de opslag die het nodig heeft, bescherm de encryptiesleutels en meet de impact op de overdracht en het CPU-gebruik voordat u bestaande bestanden versleutelt.

Voeg Elasticsearch Full-Text Search toe aan Nextcloud

Koppel de bestandszoekfunctie van Nextcloud aan Elasticsearch, indexeer de inhoud van documenten en kies een configuratie die past bij uw server- en beveiligingsbehoeften.

Stel een betrouwbaar vervalbeleid in voor verwijderde bestanden in Nextcloud.

Stel een betrouwbaar vervalbeleid in voor verwijderde bestanden in Nextcloud.

Configureer Nextcloud om verwijderde bestanden na een bepaalde bewaartermijn te verwijderen, achtergrondtaken betrouwbaar in te plannen en opdrachten te vermijden die de prullenbak van elke gebruiker leegmaken.

Wis de Nextcloud-waarschuwing voor ontbrekende database-indexen.

Wis de Nextcloud-waarschuwing voor ontbrekende database-indexen.

Voer de OCC-reparatie van Nextcloud veilig uit, bekijk de wijzigingen in de database en controleer waarom de waarschuwing mogelijk blijft bestaan.

Verhoog de uploadlimiet van Nextcloud voor webbestanden tot boven de 2 GB.

Verhoog de uploadlimiet van Nextcloud voor webbestanden tot boven de 2 GB.

Sta grotere Nextcloud-browseruploads toe door PHP, Nginx of Apache, tijdelijke opslag en time-outinstellingen op elkaar af te stemmen en te controleren welke limiet het bestand blokkeert.

Wis de PHP-geheugenwaarschuwing van Nextcloud op de webserver.

Stel de PHP-geheugenlimiet in die Nextcloud daadwerkelijk gebruikt, herstart de juiste service en bevestig de instelling van 512 MB in het beheerdersoverzicht.

Verbind een S3-compatibele bucket met Nextcloud externe opslag.

Koppel een compatibele objectopslagbucket in Nextcloud met behulp van de S3-backend, met het juiste eindpunt, de juiste inloggegevens, het juiste toegangsbereik en de juiste verificatiestappen.

Verplaats Nextcloud-gegevens naar een externe schijf zonder de opslag te beschadigen.

Verplaats Nextcloud-gegevens naar een externe schijf zonder de opslag te beschadigen.

Verplaats een Nextcloud-gegevensmap op Linux veilig naar een externe schijf met behulp van een permanente UUID-mount, de onderhoudsmodus, een geverifieerde kopie en de symbolische link naar het oorspronkelijke pad.

Nextcloud-databasefout na een update: wat moet je eerst controleren?

Herstel de toegang tot Nextcloud na een update door SQL-fouten te diagnosticeren, de databaseverbinding te controleren en onderbroken migraties veilig af te ronden.