2015-03-04 16 views
5

Tôi đang xem xét các cách đơn giản để xác định, trong Java, một số lớp dịch vụ và truy cập dữ liệu nhẹ trên đầu trang của ElasticSearch. Các đối tượng dữ liệu POJO của tôi sẽ tự nhiên có các tên thuộc tính trong camelCase, nhưng tôi tự hỏi liệu tôi có nên sử dụng camelCase cho các tên trường trong ánh xạ kiểu ElasticSearch hay không. Trong thế giới kho dữ liệu, và đặc biệt trong các RDBMS truyền thống, các tên trường chắc chắn không phải là lạc đà. Nếu tôi không nhầm, có vẻ như là một xu hướng trong thế giới NoSql để sử dụng dấu gạch dưới trong tên trường, ví dụ: tên đầu tiên. Đây có phải là một thực tế phổ biến cho ElasticSearch? Nếu vậy, điều này có nghĩa là tôi phải định cấu hình dịch vụ chuyển đổi dựa trên Jackson có thể ánh xạ qua lại giữa tên camelCase và tên trường được gạch dưới không?Thực hành tốt nhất cho tên trường trong ElasticSearch

Trả lời

2

Chỉ cần làm những gì tốt nhất cho ứng dụng của bạn. Có một dịch vụ bản đồ giới thiệu chi phí sẽ làm chậm mọi thứ, đặc biệt là với một lượng lớn dữ liệu. Tôi đang sử dụng nó chủ yếu với các ứng dụng JavaScript và tôi sử dụng camelCase.

+0

Nếu tôi sử dụng dấu gạch dưới trong tên trường chỉ mục/loại, tôi sẽ phải ánh xạ qua lại giữa các thuộc tính Java camelCase và tên trường ElasticSearch dựa trên gạch dưới, không có cách nào xung quanh nó. Các khung dựa trên chú thích như Jackson nên làm cho điều đó tương đối không đau, hy vọng. –

+1

Có, NẾU bạn sử dụng dấu gạch dưới bạn sẽ làm. Vì vậy, chỉ cần không sử dụng dấu gạch dưới. Như tôi đã nói, hãy làm những gì tốt nhất cho ứng dụng. Với elasticsearch không có quy ước hay thực hành tốt nhất với đặt tên. Sử dụng các quy ước phù hợp nhất với ứng dụng của bạn. ES được xây dựng để xử lý một lượng lớn dữ liệu rất nhanh chóng. Việc thêm một lớp ánh xạ đi ngược lại mục đích này vì nó làm chậm mọi thứ. –

Các vấn đề liên quan