Vì chức năng search của mình cần join nhiều bảng, xữ lý tính toán trong câu query nữa, nếu như thế thì có dùng Easticsearch được không bạn nhỉ.
Bạn có thể search từ Elasticsearch ra, sau đó lấy kết quả rồi select và join với các bảng khác trong MySQL mà
Nếu dữ liệu mình có là "Have technical problems? Ask on Viblo" Thì gõ "tech" thì nó không trả về kết quả nhỉ, vì nó là full-text mà, nếu dùng wildcard trong elasticsearch thì nó trả về kết quả, nếu như thế thì có khác gì search like đâu bạn nhỉ
Có lẽ bạn hiểu sai khái niệm về full text search rồi Full text search làm được nhiều việc hơn rất nhiều so với phép LIKE thông thường của SQL. Ví dụ như ở câu của bạn "Have technical problems? Ask on Viblo" thì nếu bạn search "have problems", "has problems", "ask in Viblo", hay thậm chí "probelms" (viết sai chính tả) nó vẫn có thể trả ra kết quả được cho bạn (bạn cứ thử với chức năng search của Viblo thì sẽ rõ ), chứ phép toán LIKE thì chịu chết Chưa kể phép toán like sẽ rất là chậm nữa (do hầu như không tận dụng được index)
Vì chức năng search của mình cần join nhiều bảng, xữ lý tính toán trong câu query nữa, nếu như thế thì có dùng Easticsearch được không bạn nhỉ. Nếu dữ liệu mình có là "Have technical problems? Ask on Viblo" Thì gõ "tech" thì nó không trả về kết quả nhỉ, vì nó là full-text mà, nếu dùng wildcard trong elasticsearch thì nó trả về kết quả, nếu như thế thì có khác gì search like đâu bạn nhỉ
@vhung Như bạn @huukimit trả lời ở trên, thì bạn chỉ cần giữ lại một số source deploy gần đây nhất (để rollback lại nếu cần). Ví dụ như khi tạo đến thư mục release thứ 6, thì bạn cần có cơ chế để xoá cái cũ nhất đi, để sau khi deploy thành công, bao giờ cũng có không quá 5 thư mục releases
đúng rồi bạn, í mình muốn diễn đạt như vậy đó. bạn hãy hiểu hàm tạo là 1 function với type trả về là thằng mình muốn khởi tạo. bạn call funtion thế nào thì khởi tạo như thế
@thangtd90 Cảm ơn chia sẽ của bạn về chiến lược deploy của Capistrano, mình thấy rất bổ ích, nhưng mà mình thấy nếu cứ mỗi lần deploy mình tạo một folder thì sau 100 lần deploy thì server mình phải chứa 100 bộ source nên mình thấy khá lãng phí nhỉ
Nếu mình bỏ soft delete, khi người dùng xóa thì mình phải trigger event để move toàn bộ dữ liệu sẽ xóa đó sang một audit database để có thể dùng sau này, như rứa thì thao tác xóa xữ lý khá nhiều việc nên khá chậm, bạn có cao kiến gì không bạn
đúng rồi bạn, cú pháp gần giống như nhau. Nhưng mình không muốn những người mới học các bạn ấy cài thêm vue-resource trong khi Vue đã hỗ trợ sẵn axios rồi.
THẢO LUẬN
không có bài sau ạ?
@Huu
Bạn có thể search từ Elasticsearch ra, sau đó lấy kết quả rồi select và join với các bảng khác trong MySQL mà
Có lẽ bạn hiểu sai khái niệm về full text search rồi
Full text search làm được nhiều việc hơn rất nhiều so với phép
), chứ phép toán
Chưa kể phép toán like sẽ rất là chậm nữa (do hầu như không tận dụng được
LIKEthông thường của SQL. Ví dụ như ở câu của bạn "Have technical problems? Ask on Viblo" thì nếu bạn search "have problems", "has problems", "ask in Viblo", hay thậm chí "probelms" (viết sai chính tả) nó vẫn có thể trả ra kết quả được cho bạn (bạn cứ thử với chức năng search của Viblo thì sẽ rõLIKEthì chịu chếtindex)Cái
keylà cái gì vậy bạn?Nếu theo cách 1 và dùng dùng expressJS + MySQL thì sau này dữ liệu lớn lên nó có ok không bạn nhỉ, hay là dùng expressJS + MongoDB nhỉ
(y)
Bạn chú ý dấu
.và dấu,trong câu chữ, với cả tiêu đề bạn đặt là khởi tạo 1 lớp chứ không phải là call function.Vì chức năng search của mình cần join nhiều bảng, xữ lý tính toán trong câu query nữa, nếu như thế thì có dùng Easticsearch được không bạn nhỉ. Nếu dữ liệu mình có là "Have technical problems? Ask on Viblo" Thì gõ "tech" thì nó không trả về kết quả nhỉ, vì nó là full-text mà, nếu dùng wildcard trong elasticsearch thì nó trả về kết quả, nếu như thế thì có khác gì search like đâu bạn nhỉ
@vhung Như bạn @huukimit trả lời ở trên, thì bạn chỉ cần giữ lại một số source deploy gần đây nhất (để rollback lại nếu cần). Ví dụ như khi tạo đến thư mục release thứ 6, thì bạn cần có cơ chế để xoá cái cũ nhất đi, để sau khi deploy thành công, bao giờ cũng có không quá 5 thư mục releases
đúng rồi bạn, í mình muốn diễn đạt như vậy đó. bạn hãy hiểu hàm tạo là 1 function với type trả về là thằng mình muốn khởi tạo. bạn call funtion thế nào thì khởi tạo như thế
Static methods trong interface vẫn được mà anh?
@vhung Thực tế thì chỉ giữ lại 2, 3, 5 hay một con số khác cho số lần deploy trước đó thôi. Các phiên bản release cũ hơn thì sẽ được tự động xóa bỏ.
Hay quá bạn ơi ^_^
Cảm ơn anh rất nhiều. Dù e chưa hiểu về Promise lắm nhưng nhìn code của a thì e cũng đã hiểu khái quát rồi ạ
vậy nếu ta muốn đưa code api này lên sever thì phải làm sao khi mà nó nằm chung luôn với app hay ....
@thangtd90 Cảm ơn chia sẽ của bạn về chiến lược deploy của Capistrano, mình thấy rất bổ ích, nhưng mà mình thấy nếu cứ mỗi lần deploy mình tạo một folder thì sau 100 lần deploy thì server mình phải chứa 100 bộ source nên mình thấy khá lãng phí nhỉ
Nếu mình bỏ soft delete, khi người dùng xóa thì mình phải trigger event để move toàn bộ dữ liệu sẽ xóa đó sang một audit database để có thể dùng sau này, như rứa thì thao tác xóa xữ lý khá nhiều việc nên khá chậm, bạn có cao kiến gì không bạn
(y)
@vinhnguyen Cảm ơn bạn, link đầu rất hay
@huukimit Mình điều tra trên DB thì có một số bảng hơn 20% là dữ liệu soft delete nên chắc chắn sẽ ảnh hưởng đến performance rồi bạn
đúng rồi bạn, cú pháp gần giống như nhau. Nhưng mình không muốn những người mới học các bạn ấy cài thêm vue-resource trong khi Vue đã hỗ trợ sẵn axios rồi.