{"repo":"filiphanes/fts-elastic","free":true,"listed":false,"github":"https://github.com/filiphanes/fts-elastic","clone":"git clone https://github.com/filiphanes/fts-elastic.git","description":"ElasticSearch/OpenSearch FTS implementation for the Dovecot mail server","language":"C","stars":35,"topics":["dovecot","fulltextsearch","elasticsearch","fts-elastic","dovecot-fts"],"license":null,"category":"data-pipelines","readme_excerpt":"fts-elastic fts-elastic is a Dovecot full-text search indexing plugin that uses ElasticSearch as a backend. Dovecot communicates to ES using HTTP/JSON queries. It supports automatic indexing and searching of e-mail. Requirements Dovecot 2.2+ JSON-C ElasticSearch 6, 7, 8 Autoconf 2.53+ Compiling You can provide the path to your source tree by passing --with-dovecot= to ./configure. Install dependencies # sudo apt install dovecot sudo apt install gcc make libjson-c-dev dovecot-dev An example build may look like: ./autogen.sh ./configure --with-dovecot=/usr/lib/dovecot/ make make install sudo ln -s /usr/lib/dovecot/lib21 fts elastic plugin.so /usr/lib/dovecot/modules/lib21 fts elastic plugin.so Configuration Create an index in Elasticsearch: curl -X PUT \"localhost:9200/m?pretty\" Create /etc/dovecot/conf.d/90-fts.conf with content: mail plugins = $mail plugins fts fts elastic plugin { fts = elastic fts elastic = debug url=http://localhost:9200/m/ bulk size=5000000 refresh=fts rawlog dir=/var/log/fts-elastic/ # no indexes new emails when user make search # yes indexes every email when delivered fts autoindex = no fts autoindex exclude = \\Junk fts autoindex exclude2 = \\Trash } and (re)start dovecot: dovecot stop; dovecot url=\\ Required elastic URL with index name, must end with slash / bulk size=\\ How large bulk requests we want to send to elastic in bytes (default=5000000) refresh={fts,index,never} When you want to refresh elastic index so new emails will be searchable fts: when d","default_branch":null,"files":null,"tree":[],"storefront":"/r/filiphanes","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/filiphanes/fts-elastic/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}