mirror of
https://github.com/em-squared/5e-drs.git
synced 2025-11-01 22:14:21 +00:00
Merge 91532b3ca5 into 6697181fe9
This commit is contained in:
commit
9e955c97b8
6 changed files with 115 additions and 0 deletions
2
contrib/meilisearch/.gitignore
vendored
Normal file
2
contrib/meilisearch/.gitignore
vendored
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
venv
|
||||||
|
data.ms
|
||||||
23
contrib/meilisearch/Makefile
Normal file
23
contrib/meilisearch/Makefile
Normal file
|
|
@ -0,0 +1,23 @@
|
||||||
|
|
||||||
|
up:
|
||||||
|
docker-compose up -d
|
||||||
|
docker ps
|
||||||
|
|
||||||
|
index: venv
|
||||||
|
./venv/bin/python index.py
|
||||||
|
|
||||||
|
venv:
|
||||||
|
python3 -m venv venv
|
||||||
|
./venv/bin/pip install -U pip wheel
|
||||||
|
./venv/bin/pip install -r requirements.txt
|
||||||
|
|
||||||
|
down:
|
||||||
|
docker-compose down
|
||||||
|
|
||||||
|
purge:
|
||||||
|
make down
|
||||||
|
rm -rf data.ms
|
||||||
|
make up
|
||||||
|
|
||||||
|
pull:
|
||||||
|
docker-compose pull
|
||||||
19
contrib/meilisearch/README.md
Normal file
19
contrib/meilisearch/README.md
Normal file
|
|
@ -0,0 +1,19 @@
|
||||||
|
# Meilisearch
|
||||||
|
|
||||||
|
Indexation naïve et systématique du contenu.
|
||||||
|
|
||||||
|
Fonctionne avec un [meilisearch](https://www.meilisearch.com/) local, ou dans un conteneur, tant que ça écoute http://localhost:7700
|
||||||
|
|
||||||
|
## Demo
|
||||||
|
|
||||||
|
Lance meilisearch dans un conteneur
|
||||||
|
|
||||||
|
make up
|
||||||
|
|
||||||
|
Index le site (avec du code en python)
|
||||||
|
|
||||||
|
make index
|
||||||
|
|
||||||
|
Mailisearch propose une UI web pour tester la recherche : [http://localhost:7700](http://localhost:7700)
|
||||||
|
|
||||||
|
Il est possible de copier l'index, le dossier `data.ms` sur un serveur, pour effectuer des recherches (en lecture seule).
|
||||||
11
contrib/meilisearch/docker-compose.yml
Normal file
11
contrib/meilisearch/docker-compose.yml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
---
|
||||||
|
|
||||||
|
version: "3"
|
||||||
|
|
||||||
|
services:
|
||||||
|
meilisearch:
|
||||||
|
image: getmeili/meilisearch:latest
|
||||||
|
volumes:
|
||||||
|
- ./data.ms:/data.ms
|
||||||
|
ports:
|
||||||
|
- 7700:7700
|
||||||
57
contrib/meilisearch/index.py
Executable file
57
contrib/meilisearch/index.py
Executable file
|
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
from pathlib import Path
|
||||||
|
from io import StringIO
|
||||||
|
|
||||||
|
import yaml
|
||||||
|
from markdown import markdown
|
||||||
|
from meilisearch import Client
|
||||||
|
|
||||||
|
|
||||||
|
def pages():
|
||||||
|
"return all pages"
|
||||||
|
for readme in Path('../..').glob('**/README.md'):
|
||||||
|
if readme == Path("README.md"): # it's the home
|
||||||
|
continue
|
||||||
|
with open(readme, 'r') as file:
|
||||||
|
head = StringIO()
|
||||||
|
body = StringIO()
|
||||||
|
state = None
|
||||||
|
for line in file:
|
||||||
|
if state is None and line == "---\n":
|
||||||
|
state = "head"
|
||||||
|
continue
|
||||||
|
if state == "head":
|
||||||
|
if line == "---\n":
|
||||||
|
state = "body"
|
||||||
|
continue
|
||||||
|
head.write(line)
|
||||||
|
else:
|
||||||
|
body.write(line)
|
||||||
|
if head.tell() == 0: # empty
|
||||||
|
continue
|
||||||
|
head.seek(0)
|
||||||
|
head = yaml.safe_load(head)
|
||||||
|
body.seek(0)
|
||||||
|
txt = markdown(body.read())
|
||||||
|
# removing ../../, README.md and replace / with _
|
||||||
|
yield str(readme)[11:-10].replace("/", "_"), head['title'], txt
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
client = Client('http://127.0.0.1:7700')
|
||||||
|
try:
|
||||||
|
idx = client.get_index('pages')
|
||||||
|
except Exception:
|
||||||
|
client.create_index('pages', dict(primaryKey='path'))
|
||||||
|
print("the index is created")
|
||||||
|
else:
|
||||||
|
print("the index is already here")
|
||||||
|
|
||||||
|
for path, title, body in pages():
|
||||||
|
client.index('pages').add_documents([{
|
||||||
|
'path': path,
|
||||||
|
'title': title,
|
||||||
|
'body': body,
|
||||||
|
}])
|
||||||
|
print(title, path)
|
||||||
3
contrib/meilisearch/requirements.txt
Normal file
3
contrib/meilisearch/requirements.txt
Normal file
|
|
@ -0,0 +1,3 @@
|
||||||
|
pyyaml
|
||||||
|
meilisearch
|
||||||
|
markdown
|
||||||
Loading…
Add table
Add a link
Reference in a new issue