I have near 1 billion documents in MongoDB instance and they're nearly similar so I'm storing them in a single collection. I'm using mongo-connector to import this collection to ES. Each document has a name field (string) and value field (int, float, bool, array).
I need to do a text search and a range query. I'm using 'match' on name field for text search and 'must' for range query on value (int, float) among documents having a particular name field using 'match' on name and 'range' on value.
Is there a better way to do this performance wise?
Can I change document structure to improve search performance? For eg, instead of documents with structure as {name: abc, value: xyz}, grouping documents with same name like {same_name: abc, collection: [ {name: def, value: 1}, {name: edf, value: 2}] }. Is there any increase?
Basically, I'm trying to increase search speed for semi-structured data. Also match supports querying partial words right?
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.