J'ai récemment intégré Meillsearch avec InstantSearchJs dans un projet Laravel 10. Tout fonctionne parfaitement mais j'ai un problème avec le deploiment de Meilisearch sur ubuntu.
const {searchClient} = instantMeiliSearch(
'http://localhost:7700',
'',
{
placeholderSearch: true,
primaryKey: 'id',
}
)
let search = instantsearch({
indexName: 'index',
searchClient: searchClient,
})
search.addWidgets([
searchBox({
container: '#searchbox',
placeholder: 'Rechercher',
showLoadingIndicator: true,
showReset: true,
}),
infiniteHits({
container: '#infinite-hits',
escapeHTML: false,
templates: {
item(hit, {html, components}) {
return html`
<div> <div class="img"> <img src="${hit.poster}" alt="poster">
</div> <div class="info"> <p>${components.Highlight({attribute: 'name', hit})}</p>
<small>${components.Highlight({attribute: 'fonction', hit})}</small>
</div> </div> `;
},
empty(results, {html}) {
return html`Aucun résultat pour <q>${results.query}</q>`;
},
},
}),
])
search.start()
Mon erreur de la console
app.a0c25223.js:25 MeiliSearchCommunicationError: Not Found: http://127.0.0.1:7700/multi-search
at app.a0c25223.js:25:22114
at h (app.a0c25223.js:25:10023)
at Generator.<anonymous> (app.a0c25223.js:25:11373)
at Generator.throw (app.a0c25223.js:25:10452)
at a (app.a0c25223.js:25:20478)
Alors si c'est uniquement ton service qui se trouve dans le serveur Ubuntu, alors oui il faut l'héberger, placer un domaine et utiliser ce domaine pour entrer dans le service
Quaund tu utilises localhost
ou 127.0.0.1
, ca veut dire que ça pointe sur ta machine, donc ton projet cherche le port 7700
de ta machine et pas celui de Ubuntu
Il faudrait remplacer 'http://localhost:7700',
par '${process.env.MILLISEARCH_URL}',
, installer le package dotEnv
, puius depuius l'hébergeur ajouter la variable d'env squi sera le domaine du service
Maintenant si tu as lancé ton projet laravel dans Ubuntu aussi, et donc localhost:8000
c'est bien le localhost de Ubuntu, alors la bizarre
Hello :)
Tu as bien monté le serveur Ubuntu pour lire http://localhost:7700
?
Tu as bien 7700 dans l'APP_URL du .env?
Tu peux lancer la commande php artisan route:list
depuis le serveur Ubuntu ?
Hello :)
Oui, j'ai suivi la documentation et installer meillsearch comme un service (le sevice tourne bien sous le port 7700 et n'es accessible que localement).
En fait, j'ai plusieurs applications sur le serveur et je voudrais qu'ils interagissent avec la même instance de meillsearch.
je crois que le problème vient du l'URL client meillsearch car le service meillsearch n'es pas exposé au monde extérieur.