Right. TextField.TYPE_NOT_STORED should be used then. On Thu, Apr 24, 2025 at 10:37 AM Saha, Rajib <rajib.s...@sap.com.invalid> wrote:
> Thanks Mikhail for the suggestion. > Now the previous exception has gone. But a new exception has come from > Field.java. > Here below are the exception details. > ======== > java.lang.IllegalArgumentException: TokenStream fields cannot be stored > at org.apache.lucene.document.Field.<init>(Field.java:155) > ========= > > Can you please suggest here too? > > Regards > Rajib > > > -----Original Message----- > From: Mikhail Khludnev <m...@apache.org> > Sent: 24 April 2025 12:10 > To: java-user@lucene.apache.org > Subject: Re: Suggestion needed for a case of Lucene Migration with > TokenStream > > Hi > Use TextField.TYPE_STORED as the third argument in new Field() > see > > https://github.com/apache/lucene-solr/blob/e27f44e3d78dfcec230c97e0a1240e3751daeff9/lucene/core/src/java/org/apache/lucene/document/TextField.java#L35C33-L35C44 > > > On Thu, Apr 24, 2025 at 8:37 AM Saha, Rajib <rajib.s...@sap.com.invalid> > wrote: > > > Hi Experts, > > > > We are migrating Lucene from 2.4.1 to 8.11.2. > > > > During Migration for a part of code, we are getting below exception in > > 8.11.2 based changes from Red line colored. > > ============= > > java.lang.IllegalArgumentException: TokenStream fields must be indexed > and > > tokenized > > at org.apache.lucene.document.Field.<init>(Field.java:152) > > > > I tied few options. But, could not able to resolve the error. Beiiw > > Can somebody of you please help me to identify, where it is going as > wrong? > > > > We had code based on 2.4.1 as like below: > > =================================== > > Int currentVal< > > http://10.238.236.101:8080/source/s?defs=currentVal&project=2025_RTM> = > > //some value > > PayloadTokenStream< > > > http://10.238.236.101:8080/source/s?defs=PayloadTokenStream&project=2025_RTM > > > > tokenStream< > > http://10.238.236.101:8080/source/s?refs=tokenStream&project=2025_RTM> = > > new PayloadTokenStream< > > > http://10.238.236.101:8080/source/s?defs=PayloadTokenStream&project=2025_RTM > > >(); > > tokenStream< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/serviceplugins/src/com/sap/businessobjects/platform/search/lucene/index/engine/LuceneIndexEngine.java#tokenStream > > >.setPayload< > > http://10.238.236.101:8080/source/s?defs=setPayload&project=2025_RTM > > >(currentVal< > > http://10.238.236.101:8080/source/s?defs=currentVal&project=2025_RTM>); > > lucField< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/serviceplugins/src/com/sap/businessobjects/platform/search/lucene/index/engine/LuceneIndexEngine.java#lucField > > > > = new Field< > > http://10.238.236.101:8080/source/s?defs=Field&project=2025_RTM>(config< > > http://10.238.236.101:8080/source/s?defs=config&project=2025_RTM > > >.payloadUid< > > http://10.238.236.101:8080/source/s?defs=payloadUid&project=2025_RTM > > >().name<http://10.238.236.101:8080/source/s?defs=name&project=2025_RTM > >, > > tokenStream< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/serviceplugins/src/com/sap/businessobjects/platform/search/lucene/index/engine/LuceneIndexEngine.java#tokenStream > > >); > > doc<http://10.238.236.101:8080/source/s?defs=doc&project=2025_RTM>.add< > > http://10.238.236.101:8080/source/s?defs=add&project=2025_RTM>(lucField< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/serviceplugins/src/com/sap/businessobjects/platform/search/lucene/index/engine/LuceneIndexEngine.java#lucField > > >); > > > > ...... > > public class PayloadTokenStream< > > > http://10.238.236.101:8080/source/s?refs=PayloadTokenStream&project=2025_RTM > > > > extends TokenStream< > > http://10.238.236.101:8080/source/s?defs=TokenStream&project=2025_RTM>{ > > public static String< > > http://10.238.236.101:8080/source/s?defs=String&project=2025_RTM> > > UID_PAYLOAD_START_VAL< > > > http://10.238.236.101:8080/source/s?refs=UID_PAYLOAD_START_VAL&project=2025_RTM > > > > = "_UID_"; > > private Token< > > http://10.238.236.101:8080/source/s?defs=Token&project=2025_RTM> token< > > http://10.238.236.101:8080/source/s?refs=token&project=2025_RTM> = new > > Token<http://10.238.236.101:8080/source/s?defs=Token&project=2025_RTM > > >(UID_PAYLOAD_START_VAL< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#UID_PAYLOAD_START_VAL > > >,0,0); > > private byte[] buffer< > > http://10.238.236.101:8080/source/s?refs=buffer&project=2025_RTM> = new > > byte[4]; > > private boolean returnToken< > > http://10.238.236.101:8080/source/s?refs=returnToken&project=2025_RTM> = > > false; > > > > public void setPayload< > > http://10.238.236.101:8080/source/s?refs=setPayload&project=2025_RTM > >(int > > uid<http://10.238.236.101:8080/source/s?refs=uid&project=2025_RTM>){ > > buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > >[0] > > = (byte)uid< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#uid > > >; > > buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > >[1] > > = (byte)(uid< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#uid > > >>>8); > > buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > >[2] > > = (byte)(uid< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#uid > > >>>16); > > buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > >[3] > > = (byte)(uid< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#uid > > >>>24); > > token< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#token > > >.setPayload< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#setPayload > >(new > > Payload< > http://10.238.236.101:8080/source/s?defs=Payload&project=2025_RTM > > >(buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > > >)); > > returnToken = true; > > } > > public Token< > > http://10.238.236.101:8080/source/s?defs=Token&project=2025_RTM> next< > > http://10.238.236.101:8080/source/s?refs=next&project=2025_RTM>() throws > > IOException< > > http://10.238.236.101:8080/source/s?defs=IOException&project=2025_RTM>{ > > if (returnToken< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#returnToken > >){ > > returnToken< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#returnToken > > > > = false; return token< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#token > >; > > } > > else { return null< > > http://10.238.236.101:8080/source/s?defs=null&project=2025_RTM>; } > > > > } > > } > > > > > > We have made code based on 8.11.2 as like below: > > ========================================== > > PayloadTokenStream tokenStream = new PayloadTokenStream(); > > tokenStream.setPayload(currentVal); > > FieldType fieldType = new FieldType(); > > lucField = new Field(config.payloadUid().name, tokenStream, fieldType); > > doc.add(lucField); > > ---- > > public class PayloadTokenStream< > > > http://10.238.236.101:8080/source/s?refs=PayloadTokenStream&project=2025_RTM > > > > extends TokenStream< > > http://10.238.236.101:8080/source/s?defs=TokenStream&project=2025_RTM>{ > > public static String< > > http://10.238.236.101:8080/source/s?defs=String&project=2025_RTM> > > UID_PAYLOAD_START_VAL< > > > http://10.238.236.101:8080/source/s?refs=UID_PAYLOAD_START_VAL&project=2025_RTM > > > > = "_UID_"; > > private byte[] buffer< > > http://10.238.236.101:8080/source/s?refs=buffer&project=2025_RTM> = new > > byte[4]; > > private boolean returnToken< > > http://10.238.236.101:8080/source/s?refs=returnToken&project=2025_RTM> = > > false; > > > > public void setPayload< > > http://10.238.236.101:8080/source/s?refs=setPayload&project=2025_RTM > >(int > > uid<http://10.238.236.101:8080/source/s?refs=uid&project=2025_RTM>){ > > buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > >[0] > > = (byte)uid< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#uid > > >; > > buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > >[1] > > = (byte)(uid< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#uid > > >>>8); > > buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > >[2] > > = (byte)(uid< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#uid > > >>>16); > > buffer< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#buffer > >[3] > > = (byte)(uid< > > > http://10.238.236.101:8080/source/xref/2025_RTM/platform.services.search.java/framework/java/sdk/src/com/sap/businessobjects/platform/search/sdk/index/PayloadTokenStream.java#uid > > >>>24); > > PayloadAttributeImpl attributeImpl = new > > PayloadAttributeImpl(new BytesRef(buffer)); > > addAttributeImpl(attributeImpl); > > returnToken = true; > > } > > public boolean incrementToken() throws IOException { > > if (returnToken){ > > returnToken = false; > > return true; > > } > > else { > > return false; > > } > > } > > } > > > > Regards > > Rajib > > > > > > -- > Sincerely yours > Mikhail Khludnev > -- Sincerely yours Mikhail Khludnev