Chúng tôi đang sử dụng Lucene để tìm kiếm văn bản như một phần của sitecore. Có phương pháp nào để bỏ qua các từ dừng (như a, an, ...) trong tìm kiếm sitecore không?dừng các từ trong sitecore
Trả lời
Theo mặc định, Sitecore sử dụng máy phân tích chuẩn Lucene - Lucene.Net.Analysis.Standard.StandardAnalyzer
. Bạn có thể thấy điều này được xác định trong phần tử /configuration/sitecore/search/analyzer
của tệp web.config. Một trong các hàm tạo của lớp StandardAnalyzer
chấp nhận chuỗi các chuỗi nó sẽ xem xét dừng các từ. Theo mặc định nó sử dụng danh sách mã hóa cứng các từ dừng trong đó bao gồm:
"a", "an", "và", "là", "là", "tại", "được", "nhưng "," theo "," cho "," nếu "," trong ", " vào "," là "," nó "," không "," không "," của ", " trên "," hoặc "," chẳng hạn "," đó ",", ", " của họ "," sau đó "," ở đó "," các "này, " chúng "," này "," tới "," đã "," sẽ ", 'với'
Nếu bạn muốn thay đổi hành vi này, tôi nghĩ bạn nên kế thừa StandardAnalyzer
và ghi đè constructor mặc định của nó để có những điểm dừng w ords từ một nguồn khác thay vì mảng hardcoded. Bạn có nhiều tùy chọn, thậm chí đọc nó từ một tập tin văn bản. Đừng quên thay thế các lớp tiêu chuẩn với bạn trong web.config.
Xem các nhà thầu khác của StandardAnalyzer
lớp học để biết thêm chi tiết. .NET Reflector là bạn của bạn ở đây.
Cảm ơn bạn .. nếu bạn có thể xin chia sẻ trái tim của mã .. – rahul
Bạn có ý nghĩa gì? Mã tôi tham chiếu trong câu trả lời ở trên được đặt trong Lucene.Net.dll (trong thư mục Sitecore/bin). Bạn có thể duyệt thư viện của bên thứ ba này bằng .NET Reflector. Những gì tôi đề nghị làm trong trường hợp của bạn là tạo một lớp mới, kế thừa nó từ StandardAnalyzer, và làm cho hàm tạo mặc định tìm kiếm các từ dừng theo cách khác (cách bạn chọn). Có những ví dụ về điều này trong mã của các nhà xây dựng khác của lớp StandardAnalyzer. –
BTW, Alex Shyba vừa xuất bản một bài đăng blog tóm tắt tuyệt vời về tìm kiếm với Sitecore & Lucene: http://sitecoreblog.alexshyba.com/2011/02/8-reasons-to-use-new-search-in-sitecore. html. Bài đăng này cũng có đầy đủ các liên kết hữu ích cho các tài nguyên khác nhau về chủ đề. Hãy chắc chắn để kiểm tra xem nó ra trước khi di chuyển về phía trước trong khu vực này! –
Một ví dụ cho Yans bài:
public class CaseAnalyzer : Lucene.Net.Analysis.Standard.StandardAnalyzer
{
private static Hashtable stopWords = new Hashtable(); //{{"by","by"}}; <-- Makes "by" a stopword that will not be matched in analyzer
public CaseAnalyzer() : base(Lucene.Net.Util.Version.LUCENE_29, stopWords)
{
}
}
này nên được đăng ký trong web.config dưới
/configuration/sitecore/search/analyzer
một ví dụ về việc đăng ký phân tích
<caseanalyzer type="EBF.Business.Search.Analyzers.CaseAnalyzer, EBF.Business, Version=1.0.0.0, Culture=neutral"/>
Cuối cùng bạn chỉ cần đăng ký bộ phân tích của bạn trong cấu hình tìm kiếm như s
<Analyzer ref="search/caseanalyzer" />
- 1. Sitecore - di chuyển các mục từ Web sang Master (Gói?)
- 2. Sitecore - Assert.IsNotNull
- 3. Sitecore: loginPage?
- 4. Dừng từ bọc trong html
- 5. Gói Sitecore generaton
- 6. Sử dụng java.util.concurrent.Executor dừng tomcat từ dừng
- 7. Sitecore 6.5 với MVC3
- 8. Kiểm tra loại liên kết trong Sitecore
- 9. Mục "Mới nhất" của Sitecore
- 10. tĩnh Xem render trong Sitecore 6,6
- 11. Lấy các mục bằng cách sử dụng truy vấn sitecore
- 12. Nhận ngày tạo mặt hàng trong Sitecore
- 13. Đưa trẻ em vào sitecore
- 14. Truy cập các mục Sitecore qua dịch vụ web .NET
- 15. Dừng xcode từ chỉ mục
- 16. Đặt giá trị được tạo theo Sitecore
- 17. Tối ưu hóa hiệu năng Sitecore - Cấu hình Sitecore, cấu hình IIS
- 18. Dừng NSDictionary từ sắp xếp các mục của nó
- 19. Dừng các dòng bao bì Vim ở giữa một từ
- 20. Sitecore timeout khi đăng nhập
- 21. Sitecore MVC Rendering loại rõ
- 22. Làm cách nào để quản lý múi giờ trong Sitecore?
- 23. Cách dừng QThread từ GUI
- 24. Thực tiễn tốt nhất về Sitecore
- 25. Tôi có thể nhận tất cả các trường trong một mục (trong Sitecore) không?
- 26. Sitecore Cleanup Agent và Database Cleanup
- 27. Làm thế nào để dừng kết quả trong solr, khi cụm từ có chứa một từ dừng?
- 28. Dừng dịch vụ nền từ thông báo
- 29. Phát video từ trạng thái tạm dừng trong VideoView
- 30. Dừng một sự kiện từ bong bóng trong GWT
Trường hợp sử dụng này là gì? Nếu bạn tìm kiếm ** con mèo trong chiếc mũ ** bạn muốn nó thực sự chỉ tìm kiếm như thể bạn đã nhập ** mũ mèo **? Hay bạn có nghĩa là lọc chúng ra trong kết quả? –