during indexing, you can add the json string to a stored-only field (not indexed, not doc-values) to each document.
at query time you can then retrieve the json field's value only for the top K results. this field should not be used for matching or scoring. the point is that if you do ever want to Lucene for its strengths (text/multidimensional indexing and search), you should extract those values from your json document (like you extract Type and id, i guess) and _also_ add them as separate Fields with indexing/doc-values enabled, depending on the use-cases for that field. On Wed, Apr 22, 2020 at 7:01 AM ganesh m <emailg...@yahoo.co.in.invalid> wrote: > Hi > I am currently storing indexed field and stored field in separate > database. In stored field database, Document Id, Type and Json string of > metadata will be stored. Basically i am using it as key-value pair > database. For every document to be indexed, we have three different > metadata structure to be stored. That is the reason, we have Document Id > and Type, so that we can query and retrieve stored field based on type. We > have to depend on Lucene as we don't have any other database to store data. > > Is it good idea to store complete Json as string to Lucene DB. If we store > as separate fields then we have around 30 fields. There will be 30 seeks to > get complete stored fields. If we store it as Json then it is a one seek to > retrieve the data. Since it is Json, field name and its value will be > stored for every record and it may bloat index size. > > Could you guide me what is the better approach. To store as Json or as > individual fields. > > RegardsGanesh > -- Aditya Varun Chadha | http://www.adichad.net | +49 (0) 152 25914008 (M)