Điều này có vẻ đơn giản đến mức tôi bị thuyết phục rằng tôi phải nhìn cái gì đó. Tôi không thể thiết lập cách làm như sau trong Lucene:Thuật ngữ tìm kiếm chỉ mục Sitecore Lucene với không gian khớp với một từ không có không gian
Vấn đề
- tôi đang tìm kiếm tên địa danh.
- Tôi có một lĩnh vực được gọi
Name
- Nó được sử dụng
Lucene.Net.Analysis.Standard.StandardAnalyzer
- Đó là
TOKENIZED
- Giá trị của
Name
chứa 1 không gian trong giá trị:halong bay
. - Cụm từ tìm kiếm có thể hoặc không thể chứa thêm không gian do các cách viết khác nhau về văn hóa hoặc lỗi chính tả chính tả. Ví dụ.
ha long bay
thay vìhalong bay
. - Nếu tôi sử dụng cụm từ
halong bay
Tôi nhận được một lần truy cập. - Nếu tôi sử dụng cụm từ
ha long bay
Tôi không bị trúng.
Các giải pháp đã cố gắng
Dưới đây là đoạn code tôi đang sử dụng để xây dựng vị của tôi sử dụng LINQ to Lucene từ Sitecore:
var searchContext = ContentSearchManager.GetIndex("my_index").CreateSearchContext();
var term = "ha long bay";
var predicate = PredicateBuilder.Create<MySearchResultItemClass>(sri => sri.Name == term);
var results = searchContext.GetQueryable<MySearchResultItemClass>().Where(predicate);
Tôi cũng đã thử một trận đấu mờ sử dụng phần mở rộng .Like()
:
var predicate = PredicateBuilder.Create<MySearchResultItemClass>(sri => sri.Like(term));
Điều này cũng không mang lại kết quả cho ha long bay
.
Làm thế nào để cấu hình Lucene trong Sitecore để trả lại một hit cho cả halong bay
và ha long bay
thuật ngữ tìm kiếm, lý tưởng mà không cần phải làm bất cứ điều gì lạ mắt với thời hạn đầu vào (ví dụ tước vũ trụ, thêm ký tự đại diện, vv)?
Lưu ý: Tôi nhận ra rằng điều này cũng sẽ cho phép cụm từ h a l o n g b a y
tạo ra lần truy cập, nhưng tôi không nghĩ rằng tôi gặp sự cố với điều này.
Đối với lỗi chính tả của cụm từ đó thường được sử dụng từ đồng nghĩa thay vì nhận được Logic tìm kiếm của bạn để trang trải tất cả các căn cứ. Hãy xem bài đăng này về việc thiết lập nó với Sitecore. Có thể đáng xem xét nếu bạn có nhiều loại kịch bản này - http://firebreaksice.com/sitecore-synonym-search-with-lucene/ –
Cảm ơn bạn đã nói về các từ đồng nghĩa. Tôi thực sự có thể thực hiện điều đó cho các loại tìm kiếm khác. Tuy nhiên, với tâm trí của tôi, đây không phải là một từ đồng nghĩa. Đó là cùng một từ nhưng với khoảng trắng được thêm vào. Có lẽ tôi là người theo dõi, nhưng lý do để có từ đồng nghĩa là chỉ định các từ hoàn toàn khác nhau mà không có gì về mặt toán học chung, mặc dù chúng có cùng nghĩa như "nhanh" và "nhanh" không có chữ cái chung. – theyetiman