How to implement Elasticsearch in Nexcloud

nextcloud

(Steve) #1

Does anyone have any information on how to implement and get the elasticsearch feature for indexing and full text search in Nethserver Nextcloud any help would be greatly appreciated.

Thank you,

Steve


(Markus Neuberger) #2

I used elasticsearch here, there is a working documentation:

https://docs.zammad.org/en/latest/install-elasticsearch.html#centos-7

Edit /etc/elasticsearch/elasticsearch.yml and add network host 127.0.0.1:

#network.host: 192.168.0.1
network.host: 127.0.0.1

Restart elasticsearch: systemctl restart elasticsearch

Test if elasticsearch is running: curl -X GET localhost:9200

Now go to nextcloud and “Install and enable” following apps:

  • Full text search
  • Full text search - Files
  • Full text search - Elasticsearch

In “Settings”, “Full text search” set the following:

  • Full text search -> Search Platform to Elasticsearch
  • Elastic Search -> Address of the Servlet to http://localhost:9200
  • Elastic Search -> Index to nextcloud

Index the files:

sudo -u apache /opt/rh/rh-php71/root/usr/bin/php /usr/share/nextcloud/occ fulltextsearch:index

Sources:


https://timscha.io/elasticsearch-in-nextcloud-13-einbinden/ (German)


(Dan) #3

Getting a complaint on this that the memory limit is set lower than the recommended 512MB, and in fact the process crashes when it runs out of memory:

PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 26039464 bytes) in /usr/share/nextcloud/apps/fulltextsearch_elasticsearch/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php on line 573

So, following this post:


I re-ran the command adding the flag of -d memory_limit=512M. But at that point, I get this:
image
Is it still running in the background, and I should just wait for it to finish? Or do I need to do something to kill the search process that was started, so I can restart it?


(Markus Neuberger) #4

I tested it with a fresh nextcloud installation so indexing just took a few seconds.

I tested this with admin user and it worked…

Maybe you have to stop or reset the indexing:

occ fulltextsearch:stop
occ fulltextsearch:reset

(Dan) #5

I tried it again (a couple of hours later) and it’s running now. So either it completed the index in the background, or the process just took a while to die.


(Steve) #6

This worked great thank you guys for all the help I have another issue logged in as admin Nextcloud with the external storage enabled I cant add I get a screen that says “No external storage configured or you don’t have the permission to configure them” Anybody experienced this or know how to fix.


(Markus Neuberger) #7

I tried to setup an SMB share now and it worked, are you logged in as Nextcloud admin and clicking on “External Storage” under “Administration”?


(Steve) #8

Yes I’m logged in as admin and below is a screenshot that I receive when I click on external storage


(Markus Neuberger) #9

You clicked on “External Storage” under “Personal” but you may have to click on it under “Administration”:


(Marc) #10

Did you configure some external storage from the other “External Storages” link menu towards the bottom of the screen?


(Steve) #11

Ok I see my bad sorry clicking on the thing thanks again is their any information anywhere that shows the proper configuration using a samba share thats set up on Nethserver?


(Markus Neuberger) #12

Should be straightforward:


(Dan) #13

Tesseract OCR would seem like a nice thing to have as well–any ideas on adding that?


(Steve) #14

I have Elasticsearch working in Nextcloud appears to be finding results however the results are not listed in the view panel has shown here.


(Markus Neuberger) #15

Does it work with local files ticked? Did you try another browser?


(Steve) #16

I uploaded some local files into a test folder I created in nextcloud and reindexed and it worked however it will lot work when i add ext SFT Storage share


(Markus Neuberger) #17

Did you enable external files in the Nextcloud Full text search settings?

I don’t have an SFT share to test but it’s working with an SMB share.


(Steve) #18

got it working using smb share…I’m getting PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 26039464 bytes) in /usr/share/nextcloud/apps/fulltextsearch_elasticsearch/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php on line 573

does the command: sudo -u apache /opt/rh/rh-php71/root/usr/bin/php -d memory_limit=512M /usr/share/nextcloud/occ files:scan -v username" actually index the files or just scan them?


(Markus Neuberger) #19

It just scans the files.

For indexing:

sudo -u apache /opt/rh/rh-php71/root/usr/bin/php -d memory_limit=512M /usr/share/nextcloud/occ fulltextsearch:index

(HF) #20

Interested too in this…