Elastic search mai low-cost?

Caut o alternativă la Elastic Search pentru integrare cu un site static. Sunt relativ puține documente de indexat (să zic că-s maxim 10.000), traficul nu este uriaș (să zic pe la 2-3000/zi, cu spike-uri ocazionale), iar cei 50-70$/lună pentru un SaaS nu sunt justificabili (mai ales că e vorba de o fundație non-profit).

Alternativa ar fi să instalez ES pe un VPS, dar e ditamai animalul de aplicație, are nevoie de +8gb RAM, un VPS costă și el prea mult, deci pică și varianta asta.

Ce am nevoie:

  • fuzzy search (e.g. rome vs roma, italy vs italia etc)
  • posibilitatea de a filtra (cred că se numește faceted search?) pe diverse categorii
  • viteză (nu vreau musai să integrez autocomplete, dar dacă se poate, nu mă supăr)
  • fără cerințe absurde; aș vrea să ruleze decent pe un VPS modest (e.g. 1gb ram, 1cpu)

Ce am găsit până acum:

Aveți experiență cu vreunul din astea? Alte sugestii?

Recomand Sphinx. E șmecher.

1 Like

Nu am experienta directa, dar chiar zilele astea citeam despre Meilisearch, iar pagina lor de [comparatie cu alte proiecte] (https://docs.meilisearch.com/resources/comparison_to_alternatives.html) pare foarte interesanta, mai ales ca numeste si mai toti competitorii lor.

6 Likes

Te-ai uitat si la Amazon Elasticsearch service? Are free tier 12 luni, instanta small, si dupa ce expira asta poti folosi instanta micro care ar costa pana in 16 usd pe luna pentru 1gb ram cu 1 vcpu.

Uite aici o alternativa buna:

2 Likes

solr mai exista?
nu am alta experienta noua relevanta in domeniu.

1 Like

Google Search/Bing integrat in site.

Sonic suna foarte bine.

Sphinx vroiam sa il folosesc la un forum foarte mare cand inca nu exista elasticsearch, din cate imi amintesc necesita mai multe resurse ca elastic si indexarea e complicata. (de exemplu cel mai mare forum de warez din lume folosea Sphinx, aveau cateva milioane de utilizatori si servere foarte bune dar search-ul tot era offline cateva ore pentru reindexare) E cel mai vechi dintre toate solutiile.

Daca nu vrei ceva realtime foloseste baza de date cu indexare o data pe zi si pune un numar minim de cuvinte.

@foobaz256: Prea scump
@John_Jhon: aveam impresia că ES e construit pe solr. Ms, o să mă uit și pe ăsta
@isti37: google search nu este o opțiune. Timpul de rebuild nu este o problemă, se actualizează relativ rar; o oră pe noapte downtime e acceptabil :slight_smile:

La Hetzner poti avea un VPS cu 8gb RAM la 10.59 euro/luna, sau 18.92 euro/luna pentru 16gb RAM.

nu stiu prea multe despre elastic, dar solr am folosit acum mai multa vreme si din ce imi amintesc functiona ok pe un vps mic (una dintre cerintele tale).
de asemenea, avea ceva configurari pentru fuzzy, stop words si alte cele (am fost multumit de rezultat, dar am testat cateva versiuni de config pana am ajuns acolo).
a trecut ceva vreme de atunci, deci nu stiu cum se mai prezinta astazi (sper sa nu aiba si ele nevoie de mult ram), dar banuiesc ca te lamuresti repede daca e ce iti trebuie.
sry, asta e tot feedbackul pe care il am acum.

1 Like

Atât ElasticSearch cât și SOLR se bazează pe Lucene - au subset de funcționalități comune, dar proiectele au luat-o în direcții complet diferite. ElasticSearch a devenit un monstru NoSQL.
Și sunt Java, deci slabe șanse de funcționare pe o un VPS mic (1GB ram). Alternivele scrise în Rust, Sonic și Mieli Search s-ar putea se preteze bine la scenariul tău de utilizare, dar nu am lucrat cu ele niciodată.

1 Like

Ai dreptate la faza cu memoria, dar eu am o curiozitate: de ce AWS are in oferta instante cu 1 GB ram? Ma gandesc ca AWS nu ofera ceva nefunctional din start.

Recunosc, nu ma pricep la configuratile de ES. Sunt doar utilizator :laughing:

@iamntz Poti incerca sa cumperi doar addons de la heroku.


E o întrebare foarte bună, dar n-am lucrat cu Amazon ES, poate altcineva pe aici care ne poate lumina.
Bănuiala mea este că folosest niște trucuri pe instantele *.elasticsearch: poate sunt configurate foarte bine out-of-the-box, poate au un JVM proprietar, mai bine optimizat, etc.

În plus una e să meargă și alta e să meargă bine, în producție. AWS are tot felul de trucuri din astea, unde descoperi IO limits și alte surprize care nu sunt imediat evidente atunci când le folosesti infrastructura, nu m-ar mira să fie la fel și aici. Tehnic merge sigur, pracit s-ar putea să nu fie utilizabil în afara unor teste / PoC.

Fiindca poate iti trebuie pentru development, nu pentru un serviciu in productie si e destul sa ai 100 de titluri de filme in 10 categorii doar ca sa iti bifezi API-ul la testele end-to-end.

bleve search sau swish-e sau solr

Eu folosesc MeiliSearch (MIT license) pe node cu meilisearch (npm).

Iti recomand Manticoresearch (e un fork la sphinxsearch, pe steroizi). Il folosesc in productie de 5 ani pe un index destul de mare si are tot ce ai mentionat.

2 Likes

unpopular opinion, dar ai considerat o baza de data relationala cu un index full text search? Tehnologia de indexare e aceeasi cu elastic (lucene). Bine as folosi ES daca vreau sa fie distribuitat si am foarte multe date, cu update-uri frecvente.

Si cum ti se pare?