2013-08-12 27 views
7

Như mọi người đều nhận thức được trong mô hình tìm kiếm của bạn, bạn có thể xác định một chỉ số của loại: văn bản cũng như: chuỗi, ví dụ:vết đen mặt trời Rails khác biệt giữa: văn bản một: string trường loại

class Post < ActiveRecord::Base 
    searchable do 
    string :title 
    text :title, :body  
end 

tôi đã cố gắng tìm kiếm cho sự khác biệt cơ bản giữa loại trường văn bản và loại trường chuỗi và có thể hiểu cơ bản như:

  1. Loại trường văn bản được mã hóa và điều này giúp tìm kiếm văn bản đầy đủ trong phạm vi rất nhanh.
  2. Bạn không thể sử dụng order_by i.e sắp xếp trên một văn bản được gửi và nếu bạn cần sắp xếp trên trường đó, bạn cần phải xác định nó là: string.

Vì vậy, những gì tôi đang tìm kiếm ở đây là tất cả các KHÁI NIỆM cũng như SỬ DỤNG sự khác biệt giữa một loại trường văn bản và kiểu trường chuỗi để tôi có thể nặng ý kiến ​​của tôi trong khi xác định một lĩnh vực như chuỗi hoặc văn bản hoặc cả hai.

Lưu ý: Tôi không nói rằng bạn cung cấp tất cả các khác biệt trong một câu trả lời duy nhất, một sự khác biệt cho mỗi câu trả lời cũng sẽ làm và nhưng hãy chắc chắn rằng sự khác biệt bạn đang đưa ra chưa được đưa ra.

+0

bạn có thể làm theo các liên kết https://makandracards.com/makandra/10987-scoping-a-sunspot-solr-search-by-text-using-a- string-field –

+0

đọc liên kết đó trước khi đặt câu hỏi, và câu hỏi của tôi chứa nhiều thông tin hơn bài viết đó :) –

+0

bạn có thể thực hiện tìm kiếm «hex decimal' hoặc' ASCII' trong bất kỳ trường nào trong số các trường này không? –

Trả lời

14

Trường Văn bản

Khi các lĩnh vực văn bản được lập chỉ mục, họ được chia thành từ thành phần của chúng và sau đó xử lý bằng một bộ định nghĩa các bộ lọc (với cài đặt Solr mặc định vết đen mặt trời, họ chỉ là thấp-cased) . Quá trình này được gọi là mã thông báo và đó là điều cho phép các trường văn bản được tìm kiếm bằng cách sử dụng đối sánh toàn văn. Bạn có thể đọc thêm về mã thông báo và các tùy chọn bộ lọc có sẵn trên Solr wiki http://wiki.apache.org/solr/AnalyzersTokenizersTokenFilters.

Chuỗi Fields

dữ liệu chuỗi lĩnh vực chuỗi cửa hàng. Điều này khác với các trường văn bản như thế nào? Một trường văn bản được mã hóa, có nghĩa là nó được chia thành các từ cấu thành của nó; đó là cách tìm kiếm toàn văn hoạt động. Mặt khác, các trường chuỗi chỉ được lập chỉ mục dưới dạng: dữ liệu được lập chỉ mục chính xác là chuỗi đó, từ đầu đến cuối.

Documents

https://github.com/sunspot/sunspot/wiki/Setting-up-classes-for-search-and-indexing

+0

bạn đã thêm những điều mới với kiến ​​thức hiện tại của tôi, bình chọn bạn lên, nhưng sẽ chờ một thời gian để chấp nhận câu trả lời. –

+1

cảm ơn người đàn ông, tất cả rõ ràng bây giờ – Alexis

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