Cố gắng kiểm soát thứ tự bộ lọc mã thông báo được áp dụng trong Tìm kiếm Đàn hồi.Thứ tự kiểm soát bộ lọc mã thông báo trong Tìm kiếm Đàn hồi
Tôi biết từ các tài liệu mà trình mã thông báo được áp dụng trước, sau đó là các bộ lọc mã thông báo, nhưng chúng không đề cập đến cách xác định thứ tự của các bộ lọc mã thông báo.
Dưới đây là một đoạn YAML từ thiết lập kịch bản phân tích của tôi:
KeywordNameIndexAnalyzer :
type : custom
tokenizer : whitespace
filter : [my_word_concatenator, keyword_ngram]
Tôi đã có thể nghĩ rằng my_word_concatenator
sẽ được áp dụng trước keyword_ngram
, nhưng nó có vẻ như đó không phải là trường hợp. Bất cứ ai biết làm thế nào (hoặc nếu) thứ tự của các bộ lọc này có thể được kiểm soát?
Cảm ơn rất nhiều!
Kỳ vọng của bạn là chính xác. Các bộ lọc trong [máy phân tích tùy chỉnh] (https://github.com/elasticsearch/elasticsearch/blob/a0a8538ef9c7d8f24dc9b9f081c548f7d9e8b7cd/src/main/java/org/elasticsearch/index/analysis/CustomAnalyzer.java#L98) được áp dụng theo thứ tự được chỉ định bởi mảng bộ lọc. Bạn có thể cung cấp một ví dụ, nơi điều này dường như không phải là trường hợp? – imotov
Bạn đúng - lý do khiến đơn đặt hàng dường như là vì tôi đã sử dụng kết hợp vô nghĩa bộ mã thông báo và bộ lọc mã thông báo. Nếu bạn tò mò, my_word_concatenator dải khoảng trống, nhưng vì tôi đã sử dụng trình kiểm tra khoảng trắng, không có khoảng trống nào trong các thẻ đã nhận được vào các bộ lọc. Vì vậy, 1 đã không xảy ra ở tất cả, như trái ngược với xảy ra sau 2. –