Stop analyzer
editStop analyzer
editThe stop
analyzer is the same as the simple
analyzer
but adds support for removing stop words. It defaults to using the
_english_
stop words.
Example output
editresp = client.indices.analyze( analyzer="stop", text="The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.", ) print(resp)
response = client.indices.analyze( body: { analyzer: 'stop', text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } ) puts response
const response = await client.indices.analyze({ analyzer: "stop", text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.", }); console.log(response);
POST _analyze { "analyzer": "stop", "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." }
The above sentence would produce the following terms:
[ quick, brown, foxes, jumped, over, lazy, dog, s, bone ]
Configuration
editThe stop
analyzer accepts the following parameters:
|
A pre-defined stop words list like |
|
The path to a file containing stop words. This path is relative to the
Elasticsearch |
See the Stop Token Filter for more information about stop word configuration.
Example configuration
editIn this example, we configure the stop
analyzer to use a specified list of
words as stop words:
resp = client.indices.create( index="my-index-000001", settings={ "analysis": { "analyzer": { "my_stop_analyzer": { "type": "stop", "stopwords": [ "the", "over" ] } } } }, ) print(resp) resp1 = client.indices.analyze( index="my-index-000001", analyzer="my_stop_analyzer", text="The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.", ) print(resp1)
response = client.indices.create( index: 'my-index-000001', body: { settings: { analysis: { analyzer: { my_stop_analyzer: { type: 'stop', stopwords: [ 'the', 'over' ] } } } } } ) puts response response = client.indices.analyze( index: 'my-index-000001', body: { analyzer: 'my_stop_analyzer', text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." } ) puts response
const response = await client.indices.create({ index: "my-index-000001", settings: { analysis: { analyzer: { my_stop_analyzer: { type: "stop", stopwords: ["the", "over"], }, }, }, }, }); console.log(response); const response1 = await client.indices.analyze({ index: "my-index-000001", analyzer: "my_stop_analyzer", text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.", }); console.log(response1);
PUT my-index-000001 { "settings": { "analysis": { "analyzer": { "my_stop_analyzer": { "type": "stop", "stopwords": ["the", "over"] } } } } } POST my-index-000001/_analyze { "analyzer": "my_stop_analyzer", "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone." }
The above example produces the following terms:
[ quick, brown, foxes, jumped, lazy, dog, s, bone ]
Definition
editIt consists of:
- Tokenizer
- Token filters
If you need to customize the stop
analyzer beyond the configuration
parameters then you need to recreate it as a custom
analyzer and modify
it, usually by adding token filters. This would recreate the built-in
stop
analyzer and you can use it as a starting point for further
customization:
resp = client.indices.create( index="stop_example", settings={ "analysis": { "filter": { "english_stop": { "type": "stop", "stopwords": "_english_" } }, "analyzer": { "rebuilt_stop": { "tokenizer": "lowercase", "filter": [ "english_stop" ] } } } }, ) print(resp)
response = client.indices.create( index: 'stop_example', body: { settings: { analysis: { filter: { english_stop: { type: 'stop', stopwords: '_english_' } }, analyzer: { rebuilt_stop: { tokenizer: 'lowercase', filter: [ 'english_stop' ] } } } } } ) puts response
const response = await client.indices.create({ index: "stop_example", settings: { analysis: { filter: { english_stop: { type: "stop", stopwords: "_english_", }, }, analyzer: { rebuilt_stop: { tokenizer: "lowercase", filter: ["english_stop"], }, }, }, }, }); console.log(response);