具体的には、ストップ ワード リストなしですべて (たとえば、who) にインデックスを付けたいと考えています。エラスティック検索は十分に柔軟で、簡単に変更できますか?
4 に答える
デフォルトでは、elasticsearch が使用するアナライザーは、デフォルトの Lucene English ストップワードを持つ標準アナライザーです。Elasticsearch.yml ファイルに以下を追加して、同じアナライザーを使用するように Elasticsearch を構成しましたが、ストップワードは使用しません。
# 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_
これらの行をelasticsearch.ymlに追加することで、デフォルトのアナライザーをグローバルにオーバーライドし、ストップワード フィルターをオフにすることができます。
index.analysis.analyzer.default:
type: custom
tokenizer: standard
filter: standard, lowercase
これにより、標準のトークナイザーと 2 つのフィルター (標準と小文字) を備えたカスタム アナライザーが作成されます。このようにして、カスタム アナライザーは標準アナライザーと同じになりますが、ストップワード フィルターは使用されません。「デフォルト」という名前が付けられているため、elasticsearch は、アナライザーが明示的に設定されていないすべての場所で使用します。
確かにできます。ストップワードの代わりに stopwords_path を使用します。詳細についてはhttp://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-stop-analyzer.html