we have an index in ES which we use both for search and display on UI for resource card. this card is shown for user when he clicks on a title from search results, and document is get there by it's id. so, about 10% fields are indexed, other 90% are just stored in index as source with "index: false".
does it make sense to split this data into 2 separate indexes - so, first one will contain only fields we need for search/filter/aggregate and display on search results page, and other will contain all remaining fields? will it improve search performance? or it doesn't matter a lot how big is document, because anyway ES uses inverted index for indexed fields and just read source documents then for found ones? will benefit of such splitting be significant here?
It'll make a difference when it needs to do the fetch phase of a search. The overview here is for an older Elasticsearch version, but it's still valid.
sorry for not clear explanation, for search i need only data stored in first index, i will search over it and display on search results page. then only when user clicks on some result, i will send request to second index by document id to retrieve a document will all remaining fields to display.
will it be faster than store all fields initially in on document?
Apache, Apache Lucene, Apache Hadoop, Hadoop, HDFS and the yellow elephant
logo are trademarks of the
Apache Software Foundation
in the United States and/or other countries.