Trong Solr (3.3), có thể tạo một chữ cái theo từng chữ có thể tìm kiếm thông qua một số EdgeNGramFilterFactory
và cũng nhạy cảm với truy vấn cụm từ không?Solr: truy vấn cụm từ chính xác với một EdgeNGramFilterFactory
By Ví dụ, tôi đang tìm một lĩnh vực đó, nếu có chứa "contrat về CNTT", sẽ được tìm thấy nếu sử dụng các loại:
- contrat
- Informatique
- Contr
- informa
- "contrat informatique"
- "thông tin contrat"
Hiện nay, tôi làm một cái gì đó như thế này:
<fieldtype name="terms" class="solr.TextField">
<analyzer type="index">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
<filter class="solr.EdgeNGramFilterFactory" minGramSize="2" maxGramSize="15" side="front"/>
</analyzer>
<analyzer type="query">
<charFilter class="solr.MappingCharFilterFactory" mapping="mapping-ISOLatin1Accent.txt"/>
<filter class="solr.WordDelimiterFilterFactory" generateWordParts="1" generateNumberParts="1" catenateWords="1" catenateNumbers="1" catenateAll="0" splitOnCaseChange="1"/>
<tokenizer class="solr.LowerCaseTokenizerFactory"/>
</analyzer>
</fieldtype>
... nhưng nó không thành công trên cụm từ truy vấn.
Khi tôi nhìn vào máy phân tích lược đồ trong Solr admin, tôi thấy rằng "contrat Informatique" tạo ra các thẻ sau:
[...] contr contra contrat in inf info infor inform [...]
Vì vậy, các truy vấn làm việc với "contrat trong" (thẻ liên tiếp), nhưng không "contrat inf" (bởi vì hai thẻ này được tách ra).
Tôi khá chắc chắn bất kỳ loại gốc có thể làm việc với các truy vấn cụm từ, nhưng tôi không thể tìm thấy bộ mã thông báo phù hợp của bộ lọc để sử dụng trước EdgeNGramFilterFactory
.
Xin chào, Xavier. Bạn có thể vui lòng giải thích làm thế nào bạn chuyển đổi "cont thông tin" để + cont + thông tin là có bất kỳ ra khỏi hộp util class cho điều này? Hoặc là điều này chỉ xác định các trích dẫn kép và chuyển đổi bằng tay? Tôi đang cố giải quyết vấn đề này: http: // stackoverflow.com/questions/37033381/solr-search-field-best-practices – wattale
Đó là một thao tác thủ công, tìm kiếm các trích dẫn kép và thêm dấu cộng. Tôi không tìm thấy bất cứ điều gì có thể tự động hóa điều này cho tôi: -/ –
Cảm ơn bạn đã trả lời xavier, Đối với tôi cũng sau khi thu thập dữ liệu quá nhiều nội dung không thể tìm thấy một giải pháp hộp. Tôi nghĩ tôi đang sáng tạo lại bánh xe bằng cách làm điều này bằng tay. Nhưng tôi đoán làm điều đó bằng tay là lựa chọn duy nhất có sẵn: | – wattale