想象一下,您有一個SQL數據庫,如mysql或postgresql。你有兩張桌子:用戶和汽車。一個用戶可以驅動N輛汽車,一輛汽車可以由N個用戶驅動,所以你有第三個帶兩個外鍵的「驅動器」表。SQL和elasticsearch之間的良好規範
現在,您希望您的表用戶繼續進行elasticsearch,因爲您希望按名稱,電子郵件等搜索用戶......也許您還需要在汽車桌面上進行一些搜索。
我看到三個方式來實現這一目標,我D'想知道什麼是最好的方法:
1)放棄的SQL數據庫。所有表格現在都在elasticsearch上。您可以根據需要進行搜索,但必須手動處理所有約束。
2)保持sql數據庫的結構,你保留你的三個表,主鍵和外鍵。但是您的表只包含elasticsearch中關聯行的elasticsearch ID。例如,對於表用戶,您保留user_id並添加一個user_elasticsearch_id指向您在其中找到名稱,電子郵件地址的彈性搜索行...等等...因此,您擁有sql約束,您可以執行搜索,但您必須維護兩張桌子。
3)重複。你不碰你的sql數據庫,你複製了elasticsearch數據庫中的所有行。你有自己的限制,你可以搜索,但是你必須保持兩張表格,你有兩倍的數據和兩倍的存儲空間。
現在,勇敢的stackoverflow夥伴,你會在這種情況下做什麼?
謝謝。
這個答案應該有幫助:http://stackoverflow.com/questions/36915428/how-to-setup-elasticsearch-index-structure-with-multiple-entity-bindings/36982705#36982705和這一個也是:http: //stackoverflow.com/questions/40410920/elasticsearch-usage-with-mysql/40415430#40415430 – Val
謝謝,我會讀這個:-) –