Dokiel, comme les autres chaînes libres SCENARI, produit des sites web statiques c.a.d. qui nécessite aucun calcul ou action de la part du serveur Web sur lequel on les dépose pour les rendre publique.
Ceci est une des forces des publications SCENARI car :
Il est possible de déployer une publication sur n’importe quel version de n’importe quel serveur web (Apache, Nginx, IIS, etc)
Il y aucun prérequis d’applications tierce (pas de php, asp, nodejs, ruby) pas de base de donnée (pas de mysql, postgresql, etc)
Une publication SCENARI n’expose pas de faille de sécurité qui pourrait exister sur le serveur car il y a rien qui est exécuté sur le serveur
La plupart des publications SCENARI sont même visionable en mode file:// sans avoir recours à un serveur web
Une des faiblesses de ce système est justement de ne pas pouvoir utiliser la puissance de calcul du serveur web pour exécuter des requêtes complexe, et c’est précisément ce que vous cherchez à faire.
La recherche dans Dokiel est purement exécuté en Javascript dans le navigateur de l’internaute. Elle travaille sur un index textuel qui est construit par SCENARI au moment de la génération. Cet index élabore simplement une table de correspondance entre une liste de mots (qui peut être longue) et les pages ou ces mot sont présents. Ce type d’index ne peut pas contenir des notions de proximité entre mots, cela serait trop volumineux pour être entièrement téléchargé par le navigateur et sûrement trop lourd pour être calculé sur la machine cliente.
Pour mettre en place un moteur de recherche plus complexe qui incorpore des notions tel que la proximité ou de la reconnaissance grammatical et lexical d’une langue donnée il faut forcément que les pages soit indexés par un vrai moteur de recherche comme ceux élaborés par Google, Bing, Yahoo. Il existe nombreuses solutions d’indexation de contenus comme Elasticsearch qui sont souvent mise en œuvre par des grosses structures pour proposer à leurs utilisateurs des moteurs de recherches avancés.
Nous proposons ce type de prestation lors de la mise en place d’un SCENARIsuite. Dans cette solution, SCENARI gère non seulement la production des contenus mais aussi leur diffusion. Dans ce cadre nous nous basons sur Elasticsearch pour proposer des recherches riches, par exemple : https://doc.scenari.software/fr/?query=pour%20enrichir%20une%20capture%20d’écran
Ici, des contenus HTML produits par SCENARI ont été indexés par SCENARIsuite en utilisant le moteur de Elasticsearch , il est donc possible de formuler des recherches multi-mots.
Adapter Dokiel pour ne plus faire une indexation statique Javascript simple mais envoyer les requettes de recherche au serveur est possible mais doit être compris dans un projet plus grand de paramétrage et déploiement de solution de diffusion de contenu tel que SCENARIsuite.
Pour finir, j’apporte votre attention sur le fait que dans Dokiel il est quand-même possible de faire des recherche muti-mots mais sans aucune notion de proximité. En effet le moteur de recherche actuel propose une grammaire limité :
La chaîne de recherche peut contenir plusieurs mots, par défaut tous les mots doivent être présents dans une page
« foo bar » : pages qui contiennent les chaînes foo et bar
« foo OU bar » : pages qui contiennent les chaînes foo ou bar (OR et | sont également valides)
« +foo -bar » : pages qui contiennent le mot exact foo (mais pas foot) et ne contiennent pas la chaînes bar
« *bar » : pages qui contiennent des mots commençant par bar (barrière mais pas embargo)
Je rebondis sur cette dernière question ; est ce que la version Scenari 5 a apporté des solutions liées au moteur de recherche ? Cette version permet-elle de configurer plus facilement les solutions Solr sur Scenari ? Ou permet-elle une quelconque solution basée sur un moteur de recherche Lucene ?
Afin de permettre aux publications Scenari d’être lues depuis un simple serveur web (nginx, apache…) sans aucune dépendance, les modèles documentaires libres ne sont pas conçus pour interagir avec Solr ou Lucene.
Cependant, dans le cadre du développement d’une suite Scenari (brique de production chain, de diffusion dépôt et modèles adaptés), la brique de diffusion dépôt permet une indexation des documents par ElasticSearch (ES).
Bloqué en version 1.7 d’ES pour Scenari 4.2, la version 5 de Scenari lève une contrainte technique dans l’interaction avec ES et permet d’utiliser ses dernières version (7.3 à date).
Salut JPC, ce type de recherche n’est pas possible avec l’index simple JavaScript compris dans les publications scenari. Pour faire ce type de choses il faut passer à une réelle indexation par un outil tierce comme Elastic Search.