Tôi đang sử dụng Solr cùng với NGramTokenizerFactory để giúp tạo ra thẻ tìm kiếm chuỗi con của lờiTìm kiếm lời ngắn với Solr
NGramTokenizer được cấu hình với chiều dài từ tối thiểu 3
Điều này có nghĩa rằng tôi có thể tìm kiếm ví dụ "không" và sau đó đối sánh với từ "không thể tin được".
Tuy nhiên, tôi gặp sự cố với các từ ngắn như "I" và "in". Chúng không được lập chỉ mục bởi SOLR (Tôi nghi ngờ nó là do NGramTokenizer) và do đó tôi không thể tìm kiếm chúng.
Tôi không muốn giảm độ dài từ tối thiểu xuống 1 hoặc 2, vì điều này tạo ra chỉ mục tìm kiếm lớn. Nhưng tôi muốn SOLR bao gồm toàn bộ các từ có độ dài thấp hơn mức tối thiểu này.
Tôi có thể làm như thế nào?
/Carsten
Cảm ơn đề nghị của bạn. Tôi đã chạy phân tích chống lại hai từ: Một trường hợp bình thường - "jeudan" và 1 chữ cái "j". Đây là kết quả http://pastie.org/1000520 Như bạn có thể thấy, nó thực sự là NGramTokenizer lọc ra 1 chữ cái - hoặc trong EdgeNGramTokenizer này, nhưng tôi đã thử nghiệm cả hai. Tôi có thể thử những gì bạn đề xuất, nhưng tôi muốn, hãy để Solr làm tất cả các văn bản-rung. Tôi thực hiện rất nhiều tìm kiếm theo từng trường cụ thể, do đó đề xuất của bạn sẽ dẫn đến nhu cầu viết lại các truy vấn đó để xem xét hai trường văn bản thay vì một. Có thể nhưng phản trực giác. –
Hãy xem xét rằng nó là điển hình trong solr để có một lĩnh vực tập hợp nơi bạn thực hiện truy vấn, và sau đó là một loạt các lĩnh vực với các loại khác nhau và phân tích. Chỉ cần sử dụng thẻ copyfield để sao chép tất cả trường nguồn của bạn vào mục tiêu. Bạn không phải thay đổi truy vấn của mình. –
Vâng câu trả lời của bạn thực sự giải quyết vấn đề này và các vấn đề khác, mà tôi phải đối mặt. Tôi không biết về công cụ phân tích. Tôi đã thử một vài bộ lọc và tokenizers khác thông qua bộ phân tích, và kết thúc bằng cách sử dụng PhoneticFilter trên cả phần chỉ mục và truy vấn. Rất gọn gàng - cảm ơn rất nhiều! –