To recreate:
1. Setup elasticsearch connector.
2. Setup search API source and index (add fields to index).
3. Create view using search API index.
4. Attempt to add a facet for any of the indexed fields (string, int, etc).
You will receive no results and an error in the log.
Error:
Elasticsearch\Common\Exceptions\BadRequest400Exception: {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"Fielddata is disabled on text fields by default. Set fielddata=true on [node_grants] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."}],"type":"search_phase_execution_exception","reason":"all shards failed","phase":"query","grouped":true,"failed_shards":[{"shard":0,"index":"elasticsearch_index_drupal_aha_search_api_index","node":"aBvC6toJTnm78uwOput-UQ","reason":{"type":"illegal_argument_exception","reason":"Fielddata is disabled on text fields by default. Set fielddata=true on [node_grants] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."}}],"caused_by":{"type":"illegal_argument_exception","reason":"Fielddata is disabled on text fields by default. Set fielddata=true on [node_grants] in order to load fielddata in memory by uninverting the inverted index. Note that this can however use significant memory."}},"status":400} in Elasticsearch\Connections\Connection->process4xxError() (line 610 of /var/www/vendor/elasticsearch/elasticsearch/src/Elasticsearch/Connections/Connection.php).
Notes:
When I comment out this line:
$facet_manager->alterQuery($query, $facet_source);
The results show, but obviously, the facets aren't working. Could I be missing something simple?
Below is a snippet of hits from elasticsearch so you can see what that looks like:
{
"took": 1,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 260,
"max_score": 1,
"hits": [
{
"_index": "elasticsearch_index_drupal_aha_search_api_index",
"_type": "aha_search_api_index",
"_id": "entity:node/5:en",
"_score": 1,
"_source": {
"node_grants": [
"node_access__all"
],
"body": [
"Aliquip consectetuer elit gemino modo pecus saepius tincidunt validus. Nobis paulatim scisco. Abico ex gilvus nostrud nulla ymo. Capto duis te tincidunt vindico. Commodo facilisis occuro. Dignissim dolor ideo in nulla. Abluo nulla olim quia tincidunt ymo. Imputo interdico patria pertineo pneum rusticus tamen. Capto eligo genitus lenis scisco valde vero. Autem facilisi proprius. Bene decet eros esse gemino ille nunc scisco utinam uxor. Abluo at euismod iusto nobis paulatim uxor. Duis incassum minim molior pecus quae ut. Consectetuer esca ideo natu si suscipere. Ad exputo quae. Ad ea genitus gilvus lobortis lucidus sino tation voco. Blandit duis genitus humo quibus suscipere vicis vulpes. Abdo adipiscing aliquam cui lobortis vicis vulputate. Accumsan autem comis eum haero neque nulla valetudo vulputate ymo. Ea erat ex hendrerit. Appellatio in meus neque suscipere typicus ulciscor. Abbas hendrerit illum iusto letalis utrum verto virtus vulpes. Accumsan esca ideo jumentum tation. Interdico jumentum ludus magna natu vindico. Abbas diam luptatum saepius tamen vulpes. Autem meus modo veniam ymo zelus. Bene exputo luctus nostrud pecus scisco ulciscor. Abluo dolus ea ibidem nobis nunc patria praesent. Enim gemino paulatim rusticus te typicus valde velit. Facilisi immitto in jugis metuo paratus quadrum quidne. Jugis refero sed. Diam exputo paulatim praemitto premo suscipere ulciscor veniam zelus. Enim esca praemitto quia valde velit. Esse magna nunc nutus persto secundum veniam. Dolus huic neque nostrud praemitto saluto. Olim populus ratis vulpes. Aliquip exerci ludus nutus pagus saepius. Acsi gemino paulatim utrum vero wisi. Duis eu imputo interdico iusto iustum singularis suscipere ut valetudo. Appellatio conventio facilisi laoreet ludus plaga. Aptent loquor mos plaga praesent sed utrum valde. Abluo aliquip ea mos premo refero si. Occuro pecus similis. Distineo ille praesent. Capto commoveo et utrum. Conventio fere lucidus odio oppeto pala tum voco. Cogo conventio nibh. Augue feugiat haero nobis. Ea ludus te. Caecus dolus hos incassum obruo virtus voco. Feugiat humo jumentum sagaciter singularis uxor. Premo refoveo valde ymo. Commodo ex incassum jus ludus nutus suscipere turpis utinam. Accumsan gemino laoreet lucidus ludus pertineo torqueo vindico. Capto comis ludus vindico. Duis exputo tego vulpes. Mos probo quidne refero sed voco zelus. Diam laoreet olim singularis. Acsi autem ex facilisis luctus mos refoveo uxor. Camur eligo haero. Erat lucidus singularis. Abdo praemitto te. Diam ideo luptatum modo nisl praemitto suscipere ullamcorper. Eligo paratus virtus. Commoveo distineo patria si sit tation utrum. Acsi capto eum luptatum obruo similis. Abdo abigo bene exerci fere iustum obruo patria sit. Ad diam et haero ideo lenis luptatum metuo nunc premo. Aliquam conventio mos nunc. Esse iriure ut valetudo. Abdo bene gravis interdico iriure sit. Cui dolus eum exputo fere genitus jumentum modo. Brevitas eros eum ex laoreet occuro voco ymo. Abbas acsi at inhibeo natu plaga probo te utinam virtus. Ibidem iriure volutpat. Esca humo jumentum quadrum vulputate. Antehabeo defui eros gilvus luctus olim patria. Cogo lobortis minim. Dolus et iusto nisl odio os pala quibus usitas voco. Antehabeo pagus wisi. Ad brevitas vicis. Bene facilisis huic nimis nostrud ulciscor usitas voco."
],
"title": [
"Comis Iaceo Virtus"
],
"status": [
"1"
],
"uid": [
"0"
],
"type": [
"event"
]
}
},
{
"_index": "elasticsearch_index_drupal_aha_search_api_index",
"_type": "aha_search_api_index",
"_id": "entity:node/62:en",
"_score": 1,
"_source": {
"node_grants": [
"node_access__all"
],
"body": [
"Abigo dolore hos odio quidne ut vulputate. Dolore ibidem ille obruo si utinam voco vulpes wisi. Inhibeo interdico melior nibh quadrum. Commodo diam euismod feugiat iusto occuro os paratus premo. Ille luptatum magna qui. Distineo eu macto praesent tego voco vulputate. Ad aliquam capto causa melior paulatim praesent veniam vulputate ymo. Damnum facilisis in scisco valde valetudo. Facilisis genitus iustum saepius. Esca humo iustum quis ratis sit tamen wisi. Abbas ad aptent ibidem immitto interdico luptatum neque similis vero. Acsi caecus duis ibidem imputo iustum nibh pala refero vulpes. Cogo jus scisco vindico wisi. Conventio diam refero ut wisi. Aliquam cogo esse feugiat gemino natu qui. Defui humo loquor nobis olim qui quia tincidunt usitas. Cui dignissim dolore esca euismod gemino paulatim premo roto vindico. Abluo autem commodo eros tamen veniam. Neo validus vereor. Ad ex iaceo quidem usitas. Adipiscing exputo mos sed torqueo validus veniam. Diam erat genitus. Abbas autem brevitas cogo et lucidus. Eligo laoreet lenis ludus nulla quis tego turpis. Adipiscing jugis neo. Commoveo iustum macto metuo nimis odio probo. Diam paratus persto ut. Importunus oppeto pagus praemitto rusticus. Eu gilvus luptatum. Autem esse facilisi incassum pagus pecus pertineo typicus utrum. Abigo capto jumentum metuo. Os ulciscor valde. Conventio eum ex hos ibidem inhibeo mos sed utinam wisi. Ad defui incassum inhibeo luptatum modo plaga premo suscipit tamen. Pala refoveo similis vereor. Ideo nibh vulpes. Exerci exputo jumentum velit volutpat. Aliquam autem causa inhibeo olim quidem si validus. Abluo comis duis esse. Adipiscing antehabeo at cogo gilvus pneum quia turpis utrum vel. Bene gilvus pecus. Abluo commoveo ille melior pecus veniam. Acsi augue cui ex iaceo lenis quae verto. Accumsan cogo melior nisl. Dolus facilisi humo roto typicus virtus. Capto oppeto te ymo. Erat eu fere jumentum mauris nulla quis similis. Abico autem incassum luctus mauris quia secundum usitas velit. Qui secundum usitas valde ymo zelus. Feugiat lenis mos veniam. Distineo huic iustum meus quia ullamcorper. Immitto jugis nibh nostrud pertineo plaga probo sagaciter typicus. Aliquam antehabeo elit nibh nisl persto quia si sit usitas. Commodo genitus premo saepius ut vicis vindico voco. Et fere illum neque tamen validus velit. Importunus paulatim refoveo suscipit. Blandit paulatim pertineo quidem secundum turpis vereor vero. Esse genitus iriure sit usitas vulputate. Consectetuer similis uxor volutpat wisi. Causa conventio exerci iusto neque olim quidem secundum typicus. Adipiscing commodo decet interdico nutus tego uxor volutpat. Bene causa magna pecus ut utrum. Consectetuer exputo iriure jumentum velit voco. Amet esca fere ideo jugis laoreet persto quadrum refoveo. Camur cui erat nibh patria valde. Erat genitus inhibeo iusto luctus nimis pneum rusticus. Erat feugiat magna. Appellatio commodo humo populus quis singularis turpis. Abbas capto sed typicus utrum."
],
"field_topics": [
"17",
"16"
],
"title": [
"Brevitas Causa Consequat Dolus Genitus Qui"
],
"name": [
"340B"
],
"status": [
"1"
],
"uid": [
"1"
],
"type": [
"call"
]
}
},
Comments
Comment #2
m4oliveiI'm seeing the same problem. This was working a couple months ago. Not sure what's changed since then. I've noticed that even though I'm setting the fields on the index to type String, they are getting indexed as full text fields. Before they used to be getting indexed as type keyword.
Comment #3
m4oliveiIf I click the "Clear all indexed data" link no the Index Summary page (/admin/config/search/search-api/index/). Then either run cron or click Index now on the Index Summary page, the fields are properly indexed, where String fields become keyword types and Text fields become text field types.
Doing that then eliminates the above error, and the facets work.
Comment #4
m4oliveiThis is related to https://www.drupal.org/project/elasticsearch_connector/issues/2922635. See that issue for a patch that should fix the issue here.
You'll need to re-save your field mapping to fix the issue after you apply the patch.
Comment #5
skek commentedComment #6
andyg5000I've confirmed that the fix in #2922635: Field mapping is never getting updated closes this one out.
I came across this issue when adding facets to an index broke the search results. Updated to the current 5.x-dev, cleared and re-indexed the content and now facets work.