Strategieë vir die behoud van 'n Lucene Index up to date met domein model veranderinge

StackOverflow https://stackoverflow.com/questions/38125

  •  09-06-2019
  •  | 
  •  

Vra

Was op soek na mense gedagtes kry op die behoud van 'n veranderinge in die indeks op datum as veranderinge gemaak word aan die domein model oogmerke van 'n aansoek.

Die betrokke aansoek is 'n Java / J2EE gebaseerde web artikels wat Hibernate gebruik. Die manier wat ek het op die oomblik dinge werk is dat die Hibernate gekarteer model voorwerpe al te implementeer 'n gemeenskaplike "geïndekseer" koppelvlak wat 'n stel van die belangrikste / waarde pare wat aangeteken in Lucene kan terugkeer. Wanneer 'n CRUD operasie uitgevoer word met betrekking tot so 'n voorwerp stuur ek dit via JMS tou in 'n boodskap gedryf boontjie wat rekords in Lucene die primêre sleutel van die voorwerp en die sleutel / waarde pare teruggekeer van die metode indeks () van die geïndekseer voorwerp wat was voorsien word.

My grootste bekommernis oor hierdie skema is as die MAR kry agter en kan nie tred hou met die kruip bedrywighede wat kom in, of as 'n soort van fout / uitsondering tot stilstand kom 'n voorwerp van wat indeks. Die resultaat is 'n out-of-date indeks vir óf 'n soort, of lank, tydperk.

Eintlik het ek het net gewonder watter soort strategieë ander vorendag gekom het nie vir hierdie soort van ding. Nie noodwendig op soek na een korrekte antwoord, maar ek verbeel 'n lys van "witbord" soort van idees te kry my brein dink oor alternatiewe.

Was dit nuttig?

Oplossing

Verander die boodskap: net verskaf die primêre sleutel en die huidige datum, nie die sleutel / waarde pare. Jou MAR haal die entiteit by primêre sleutel en doen 'n beroep indeks (). Na kruip jy 'n waarde "updated" in jou indeks om die datum boodskap stel. Jy werk jou indeks slegs indien die datum boodskap is na die "updated" veld van die indeks. Op hierdie manier kan jy nie agter te kry, want jy altyd gaan haal eers die huidige sleutel / waarde pare.

As 'n alternatief: 'n blik op http://www.compass-project.org .

Ander wenke

Die aanvaarde antwoord is nou en baie 8 jaar oud verouderd.

Die Compass Projek is nie meer in stand gehou sedert 'n lang tyd, as sy belangrikste ontwikkelaar aanbeweeg na die uitstekende Elasticsearch skep.

Die moderne antwoord hierop is om te gebruik Hibernate Soek , wat toevallig kan karteer om óf 'n veranderinge in die indeks direk of deur Elasticsearch.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top