özellikle, durmaksızın kelime listesi olmayan her şeyi (örneğin, kimin) dizine eklemek istiyorum. Esnek arama esnekliği yeterince değişebilir ve kolay değişebilir mi?Elastic Search'ü kendi Stop Word listemi kullanacak şekilde özelleştirebilir miyim?
cevap
Evet, bunu ElasticSearch'ün dahili yapılandırması YAML dosyasını kullanarak yapabilirsiniz.
Analiz cihazı ayarlarının nasıl değiştirileceği hakkında bilgi almak için config docs'a bakın.
Varsayılan olarak, elasticsearch kullanan analizci, varsayılan Lucene English şifreleriyle birlikte standard analyzer şeklindedir. Elasticsearch'i aynı analizörü kullanacak şekilde, ancak elasticsearch.yml dosyasına aşağıdakileri ekleyerek, stopwords olmaksızın yapılandırdım.
# 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_
:
index.analysis.analyzer.default:
type: custom
tokenizer: standard
filter: standard, lowercase
Bu standard simgeleştiricisine ve iki özel analizörü yaratacak filtreler: standart ve küçük harf. Bu şekilde, özel analizörünüz standart analizörle aynı olacaktır ancak stopword filtresini kullanmayacaktır. "Varsayılan" olarak adlandırıldığı için, elasticsearch bunu analizörün açıkça ayarlanmadığı her yerde kullanacaktır.
Kesinlikle yapabilirsiniz. Stopwords_path, stopwords'leri kullan. Daha fazla bilgi için http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-stop-analyzer.html
Bu, aslında bu soruyu gördüğüm en iyi yanıttır, çünkü bu, durdurma süzgecini kaldırır ve bu nedenle kodu daha kompakt hale getirir. –