Khi bạn đặt term_vector=with_positions_offsets
cho một trường cụ thể, điều đó có nghĩa là bạn đang lưu trữ vectơ thuật ngữ cho mỗi tài liệu, cho trường đó.
Khi nói đến làm nổi bật, thuật ngữ vectơ cho phép bạn sử dụng công cụ đánh dấu véc tơ nhanh màu xanh lục, nhanh hơn công cụ đánh dấu chuẩn. Lý do là các highlighter tiêu chuẩn không có bất kỳ cách nhanh chóng để làm nổi bật kể từ khi chỉ số không chứa đủ thông tin (vị trí và offsets). Nó chỉ có thể phân tích lại nội dung của trường, đánh chặn các vị trí và vị trí và làm nổi bật dựa trên thông tin đó. Quá trình này có thể mất nhiều thời gian, đặc biệt là với các trường văn bản dài.
Sử dụng vectơ cụm từ bạn có đủ thông tin và không cần phải phân tích lại văn bản. Nhược điểm là kích thước của chỉ số, mà đáng chú ý sẽ tăng lên. Tôi phải thêm rằng vì vector vectơ Lucene 4.2 được nén tốt hơn và được lưu trữ theo cách tối ưu. Ngoài ra còn có PostingsHighlighter mới dựa trên khả năng lưu trữ bù trừ trong danh sách bài đăng, yêu cầu ít không gian hơn.
elasticsearch sử dụng tự động cách tốt nhất để làm nổi bật dựa trên thông tin có sẵn. Nếu các vectơ hạn được lưu trữ, nó sẽ sử dụng công cụ đánh dấu vectơ nhanh, nếu không thì sẽ là tiêu chuẩn. Sau khi bạn reindex mà không có vectơ hạn, làm nổi bật sẽ được thực hiện bằng cách sử dụng highlighter tiêu chuẩn. Nó sẽ chậm hơn nhưng chỉ số sẽ nhỏ hơn.
Về trường ngram, hành vi được mô tả là lạ vì highlighter vector nhanh sẽ có hỗ trợ tốt hơn cho các trường ngram, do đó tôi mong đợi kết quả ngược lại chính xác.
không có giải pháp hoặc câu trả lời nào về tác động của with_positions_offsets? –