Token count field type
editToken count field type
editA field of type token_count
is really an integer
field which
accepts string values, analyzes them, then indexes the number of tokens in the
string.
For instance:
resp = client.indices.create( index="my-index-000001", mappings={ "properties": { "name": { "type": "text", "fields": { "length": { "type": "token_count", "analyzer": "standard" } } } } }, ) print(resp) resp1 = client.index( index="my-index-000001", id="1", document={ "name": "John Smith" }, ) print(resp1) resp2 = client.index( index="my-index-000001", id="2", document={ "name": "Rachel Alice Williams" }, ) print(resp2) resp3 = client.search( index="my-index-000001", query={ "term": { "name.length": 3 } }, ) print(resp3)
response = client.indices.create( index: 'my-index-000001', body: { mappings: { properties: { name: { type: 'text', fields: { length: { type: 'token_count', analyzer: 'standard' } } } } } } ) puts response response = client.index( index: 'my-index-000001', id: 1, body: { name: 'John Smith' } ) puts response response = client.index( index: 'my-index-000001', id: 2, body: { name: 'Rachel Alice Williams' } ) puts response response = client.search( index: 'my-index-000001', body: { query: { term: { 'name.length' => 3 } } } ) puts response
const response = await client.indices.create({ index: "my-index-000001", mappings: { properties: { name: { type: "text", fields: { length: { type: "token_count", analyzer: "standard", }, }, }, }, }, }); console.log(response); const response1 = await client.index({ index: "my-index-000001", id: 1, document: { name: "John Smith", }, }); console.log(response1); const response2 = await client.index({ index: "my-index-000001", id: 2, document: { name: "Rachel Alice Williams", }, }); console.log(response2); const response3 = await client.search({ index: "my-index-000001", query: { term: { "name.length": 3, }, }, }); console.log(response3);
PUT my-index-000001 { "mappings": { "properties": { "name": { "type": "text", "fields": { "length": { "type": "token_count", "analyzer": "standard" } } } } } } PUT my-index-000001/_doc/1 { "name": "John Smith" } PUT my-index-000001/_doc/2 { "name": "Rachel Alice Williams" } GET my-index-000001/_search { "query": { "term": { "name.length": 3 } } }
The |
|
The |
|
This query matches only the document containing |
Parameters for token_count
fields
editThe following parameters are accepted by token_count
fields:
The analyzer which should be used to analyze the string value. Required. For best performance, use an analyzer without token filters. |
|
|
Indicates if position increments should be counted.
Set to |
Should the field be stored on disk in a column-stride fashion, so that it
can later be used for sorting, aggregations, or scripting? Accepts |
|
Should the field be searchable? Accepts |
|
Accepts a numeric value of the same |
|
Whether the field value should be stored and retrievable separately from
the |
Synthetic _source
editSynthetic _source
is Generally Available only for TSDB indices
(indices that have index.mode
set to time_series
). For other indices
synthetic _source
is in technical preview. Features in technical preview may
be changed or removed in a future release. Elastic will work to fix
any issues, but features in technical preview are not subject to the support SLA
of official GA features.
token_count
fields support synthetic _source
in their
default configuration. Synthetic _source
cannot be used together with
copy_to
.