2015-03-02 15 views

Trả lời

2

Cập nhật: tái: fields

Lưu ý rằng đây là tài liệu 1.x nếu bạn chỉ cần đến đây từ tương lai.

Để tương thích ngược, nếu tham số trường chỉ định các trường không được lưu trữ (ánh xạ cửa hàng được đặt thành false), nó sẽ tải _source và trích xuất từ ​​đó. Chức năng này đã được thay thế bởi tham số source filtering.

- https://www.elastic.co/guide/en/elasticsearch/reference/1.7/search-request-fields.html#search-request-fields


AFAICT:

_source nói elasticsearch liệu có bao gồm nguồn các văn bản phù hợp trong các phản ứng. "Nguồn" là dữ liệu trong tài liệu khi nó được chèn vào.

fields nói elasticsearch bao gồm nguồn, nhưng chỉ bao gồm các định nghĩa lĩnh vực.

Hiệu suất: Trừ khi bạn có băng thông thấp cho máy chủ Elasticsearch, nó có thể không đáng kể.

+0

phần chênh lệch giữa _source_include là gì và các trường tham số? Cả hai dường như làm những việc tương tự. – vaishaks

+1

Vâng, trên giao diện thứ hai: "Chức năng này đã được thay thế bởi thông số lọc nguồn". - http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-get.html#get-fields – joar

0

Tôi cũng có cùng một nghi ngờ, here Tôi đã tìm thấy câu trả lời có thể là gì.

lĩnh vực hạn chế các lĩnh vực có nội dung phân tích cú pháp và trở

_source_filtering hạn chế các lĩnh vực mà trở

Một cách khác để nhìn thấy nó là để suy nghĩ rằng lĩnh vực là được sử dụng để tối ưu hóa truyền dữ liệu và sử dụng CPU trong khi _source_filtering chỉ tối ưu hóa truyền dữ liệu

Lọc nguồn cho phép chúng tôi kiểm soát phần nào của tài liệu JSON gốc được trả về cho mỗi lần truy cập [...] Cần lưu ý rằng điều này chỉ tiết kiệm chi phí băng thông giữa các nút tham gia tìm kiếm cũng như khách hàng, không phải CPU hoặc đĩa, như trường hợp khi sử dụng các trường.

Ngoài ra:

Một đặc điểm về các lĩnh vực mà không thường được gọi là khả năng chọn siêu dữ liệu lĩnh vực là tốt.Lưu ý đặc biệt là khả năng chọn trường _ttl, thực sự trả về số mili giây cho đến khi tài liệu hết hạn, chứ không phải tuổi thọ ban đầu của tài liệu. Một tính năng rất tiện dụng thực sự.

0

Thông số fields chỉ áp dụng cho các trường stored. Từ tài liệu 2.3:

Ngoài việc lập chỉ mục giá trị của trường, bạn cũng có thể chọn lưu trữ giá trị trường gốc để truy xuất sau này. Người dùng có trường sử dụng nền Lucene được lưu trữ để chọn trường nào họ muốn có thể trở lại trong kết quả tìm kiếm của họ. Trên thực tế, trường _source là trường được lưu trữ. Trong Elasticsearch, thiết lập các tài liệu riêng lẻ các trường được lưu trữ thường là một tối ưu hóa sai. Toàn bộ tài liệu đã được lưu trữ dưới dạng trường _source. Hầu như luôn luôn là tốt hơn để chỉ trích xuất các trường bạn cần sử dụng tham số _source .

Xem source filetring cho làm thế nào để hạn chế các lĩnh vực trở về từ _source

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