cụ thể, tôi muốn lập chỉ mục mọi thứ (ví dụ: người) không có danh sách từ dừng. Là tìm kiếm đàn hồi đủ linh hoạt và dễ dàng, đủ để thay đổi?Tôi có thể tùy chỉnh Elastic Search để sử dụng danh sách Stop Word của riêng mình không?
Trả lời
Có, bạn có thể thực hiện việc này bằng tệp YAML cấu hình bên trong của ElasticSearch.
Xem config docs để biết cách thay đổi cài đặt máy phân tích.
Theo mặc định, trình phân tích elasticsearch sử dụng là standard analyzer với các từ dừng mặc định Lucene English. Tôi đã cấu hình elasticsearch để sử dụng cùng một phân tích nhưng không có từ dừng bằng cách thêm phần sau vào tệp elasticsearch.yml.
# Index Settings
index:
analysis:
analyzer:
# set standard analyzer with no stop words as the default for both indexing and searching
default:
type: standard
stopwords: _none_
Bạn có thể ghi đè lên phân tích mặc định trên toàn cầu và tắt bộ lọc từ dừng bằng cách thêm các dòng để elasticsearch.yml của bạn:
index.analysis.analyzer.default:
type: custom
tokenizer: standard
filter: standard, lowercase
này sẽ tạo ra một phân tích tùy chỉnh với các tokenizer tiêu chuẩn và hai bộ lọc: chuẩn và chữ thường. Bằng cách này, bộ phân tích tùy chỉnh của bạn sẽ giống hệt với bộ phân tích tiêu chuẩn nhưng nó sẽ không sử dụng bộ lọc từ dừng. Bởi vì nó được đặt tên là "mặc định", elasticsearch sẽ sử dụng nó ở khắp mọi nơi mà bộ phân tích không được đặt rõ ràng.
Chắc chắn bạn có thể. Sử dụng stopwords_path của các từ dừng. Để biết thêm thông tin http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-stop-analyzer.html
Đây thực sự là câu trả lời hay nhất tôi đã thấy cho câu hỏi này, vì nó loại bỏ bộ lọc từ dừng và do đó làm cho mã nhỏ gọn hơn. –