Note that there are some explanatory texts on larger screens.

plurals
  1. POquerying elasticsearch multi-field
    primarykey
    data
    text
    <p>I have the following settings configured for an 'asset_test' index in elasticsearch:</p> <pre><code>{ "settings" : { "analysis" : { "analyzer" : { "str_filtered_search_analyzer" : { "tokenizer" : "keyword", "filter" : ["lowercase"] }, "str_prefix_analyzer" : { "tokenizer" : "keyword", "filter" : ["lowercase", "prefix"] }, "str_substring_analyzer" : { "tokenizer" : "keyword", "filter" : ["lowercase", "substring"] }, "path_analyzer" : { "type" : "custom", "tokenizer" : "path_hierarchy" } }, "filter" : { "prefix" : { "type" : "edgeNGram", "min_gram" : 2, "max_gram" : 24, "side": "front" }, "substring" : { "type" : "nGram", "min_gram" : 2, "max_gram" : 24 } } } }, "mappings" : { "asset" : { "properties" : { "_id": { "type" : "string", "index" : "not_analyzed" }, "_rev": { "type" : "string", "index" : "not_analyzed" }, "type": { "type" : "string", "index" : "not_analyzed" }, "requiredBySystem": { "type" : "boolean" }, "attributes": { "properties" : { "id" : { "type" : "string" }, "type" : { "type" : "string", "index" : "not_analyzed" }, "heading" : { "type" : "string" }, "text" : { "type" : "string" }, "users" : { "type" : "string" }, "categories" : { "type" : "multi_field", "fields" : { "categories" : { "type" : "string", "index" : "not_analyzed" }, "path" : { "type" : "string", "analyzer" : "path_analyzer" } } }, "choices" : { "properties" : { "text" : { "type" : "string" }, "checked" : { "type" : "boolean" } } }, "requiredBySystem": { "type" : "boolean" }, "required": { "type" : "boolean" } } } } } } }; </code></pre> <p>I have this document in the index:</p> <pre><code>{ "_id": "9399fb27448b1e5dfdca0181620418d4", "_rev": "14-173e71c77d32f0360f7afb2206b2a334", "type": "entryForm", "requiredBySystem": true, "formName": "Basic", "attributes": [ { "id": "9399fb27448b1e5dfdca01816203d609", "type": "text", "heading": "Brand", "text": "", "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca01816203dc61", "type": "text", "heading": "Model", "text": "", "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca01816203decd", "type": "text", "heading": "Location", "text": "", "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca01816203e68e", "type": "userSelectMenu", "heading": "Assigned To", "users": [ ], "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca01816203e9c9", "type": "categories", "heading": "Categories", "categories": [ "/Airport/Hangar 1", "/Airport/Hangar 2" ], "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca01816203ebdd", "type": "text", "heading": "Owner ID", "text": "", "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca01816203f0da", "type": "textarea", "heading": "Description", "text": "", "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca01816207uy5a", "type": "radio", "heading": "Radio Buttons", "choices": [ { "text": "Button 1", "checked": false }, { "text": "Button 2", "checked": true } ], "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca01816205tgh6", "type": "checkboxes", "heading": "Checkboxes", "choices": [ { "text": "Box 1", "checked": false }, { "text": "Box 2", "checked": true } ], "requiredBySystem": true }, { "id": "9399fb27448b1e5dfdca0181620k81gt", "type": "select", "heading": "Select Menu", "choices": [ { "text": "Option 1", "checked": false }, { "text": "Option 2", "checked": true } ], "requiredBySystem": true } ] } </code></pre> <p>I'm trying to find the document with the following query but it is not being found:</p> <pre><code>{ "query": { "field": { "attributes.categories.path": "/Airport" } } } </code></pre> <p>Kinda stuck on how to make this work.</p> <p><em>*</em> Update: I made 'attributes' a nested type and querying with the following query now appears to work:</p> <pre><code>{ "query" : { "nested" : { "path" : "attributes", "query" : { "term" : { "attributes.categories.path" : "/Airport/Hangar 1" } } } } } </code></pre> <p>Am I going about this the right way?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload