Can I customize Elastic Search to use my own Stop Word list?

7.8k Views Asked by At

specifically, I want to index everything (e.g. the who) with no stop word list. Is elastic search flexible enough and easy enough to change?

4

There are 4 best solutions below

0
On

Yes, you can do this using ElasticSearch's internal config YAML file.

See the config docs for how to change the analyzer settings.

1
On

You can override default analyzer globally and turn off the stopword filter by adding these lines to your elasticsearch.yml:

index.analysis.analyzer.default:
  type: custom
  tokenizer: standard
  filter: standard, lowercase

This will create a custom analyzer with the standard tokenizer and two filters: standard and lowercase. This way your custom analyzer will be identical to the standard analyzer but it will not use the stopword filter. Because it's named "default", elasticsearch will use it everywhere where analyzer is not explicitly set.

0
On

Certainly you can. Use stopwords_path insead of stopwords. for more information http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/analysis-stop-analyzer.html

0
On

By default, the analyzer elasticsearch uses is a standard analyzer with the default Lucene English stopwords. I have configured elasticsearch to use the same analyzer but without stopwords by adding the following to the elasticsearch.yml file.

# 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_