1. Schema
schema Solr của bạn là rất nhiều quyết tâm theo hành vi tìm kiếm dự định của bạn. Trong tệp schema.xml của bạn, bạn sẽ thấy một loạt các lựa chọn như "văn bản" và "chuỗi". Họ cư xử khác nhau.
<fieldtype name="string" class="solr.StrField" sortMissingLast="true" omitNorms="true"/>
Loại trường chuỗi là kết quả chuỗi chữ. Nó sẽ hoạt động như ==
trong một câu lệnh SQL.
<fieldtype name="text_ws" class="solr.TextField" positionIncrementGap="100">
<analyzer>
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
</analyzer>
</fieldtype>
Loại trường text_ws không mã thông báo. Tuy nhiên, một sự khác biệt lớn trong trường text
là các bộ lọc cho các từ dừng và dấu phân tách và lớp vỏ dưới. Lưu ý cách các bộ lọc này được chỉ định cho cả chỉ mục Lucene và truy vấn Solr. Vì vậy, khi tìm kiếm một trường văn bản, nó sẽ điều chỉnh các cụm từ truy vấn bằng cách sử dụng các bộ lọc này để giúp tìm một kết quả phù hợp.
<fieldtype name="text" class="solr.TextField" positionIncrementGap="100">
<analyzer type="index">
<tokenizer class="solr.WhitespaceTokenizerFactory"/>
<filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt"/>
<filter ..... />
<filter ..... />
<filter ..... />
</analyzer>
</fieldtype>
Khi lập chỉ mục những thứ như câu chuyện tin tức, bạn có thể muốn tìm kiếm tên công ty và tiêu đề khác nhau.
<field name="headline" type="text" />
<field name="coname" type="string" indexed="true" multiValued="false" omitNorms="true" />
Ví dụ trên sẽ cho phép bạn thực hiện tìm kiếm như &coname:Intel&headline:processor+specifications
và truy xuất các kết quả phù hợp với chính xác câu chuyện của Intel.
Nếu bạn muốn tìm kiếm một loạt
2. Fields quả
Bạn có thể định nghĩa một bộ tiêu chuẩn ruộng trở lại trong bạn RequestHandler
<requestHandler name="mumble" class="solr.DisMaxRequestHandler" >
<str name="fl">
category,coname,headline
</str>
</requestHandler>
Bạn cũng có thể xác định mong muốn các trường trong chuỗi truy vấn của bạn, sử dụng thông số fl
.:
/select?indent=on&version=2.2&q=coname%3AIn*&start=0&rows=10&fl=coname%2Cid&qt=standard
Bạn cũng có thể select ranges trong cụm từ truy vấn của mình bằng cách sử dụng cú pháp field:[x TO *]
.Nếu bạn muốn chọn một số quảng cáo nhất định theo ngày của chúng, bạn có thể tạo truy vấn với
ad_date:[20100101 TO 20100201]
trong cụm từ truy vấn của bạn. (Có rất nhiều cách để tìm kiếm dãy, tôi trình bày phương pháp sử dụng số nguyên thay vì Lớp ngày).
Bạn có biết tôi có thể tìm thấy "tài liệu tham khảo" ở tất cả các loại và thuộc tính cho các kiểu trường này không? –
Tôi thường bắt đầu trên trang wiki http://wiki.apache.org/solr/ và Javadocs cho các lớp học được đặt tại đây: http://lucene.apache.org/solr/api/index.html. –