sql >> Databasteknik >  >> RDS >> Mysql

Solr och MySQL, Hur håller man ett uppdaterat index, och behövs ens en DB om det är enkelt?

Att använda en databas eller inte kokar egentligen ner till hur lång sikt du vill behålla och växa denna data. Det är mycket, mycket lättare att korrumpera ett helt Solr-index (och förlora all din data) än det är att korrumpera en hel databas. Solr har inte heller bra stöd för att ändra ett schema utan att börja med ett nytt index. Du kan till exempel lägga till ytterligare ett fält, men du kan inte ändra namnet eller typen av ett fält utan att radera ditt index.

Om du använder en DB kan du ställa in Solr för att indexera direkt från DB med DataImportHandler . För ditt schema borde detta vara ganska enkelt, men det här kan bli smärtsamt snabbt eftersom din DB blir mer komplex. Jag tror att det finns en viss fördel med att använda Hibernate-objekten som du redan har konfigurerat och bara infoga dem med Solrj. Den andra smärtpunkten med DataImportHandler är att den är helt kontrollerad med hjälp av http. Så du måste hantera separata cron-jobb (eller någon annan kod) för att hantera schemaläggningen med wget eller curl .



  1. Insamlingsmetod:DELETE-procedur i Oracle Database

  2. SQL Self Join

  3. JDBC returnerar fel antal berörda rader

  4. Kryptera användardata för automatisk inloggning till tredje parts system