You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@lucene.apache.org by "Robert Scholte (Jira)" <ji...@apache.org> on 2019/11/18 22:00:00 UTC

[jira] [Moved] (LUCENE-9052) Deprecated method copyChars is used in example

     [ https://issues.apache.org/jira/browse/LUCENE-9052?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Scholte moved MNGSITE-382 to LUCENE-9052:
------------------------------------------------

              Key: LUCENE-9052  (was: MNGSITE-382)
    Lucene Fields: New
         Workflow: patch-available, re-open possible, new labels  (was: Default workflow, editable Closed status)
          Project: Lucene - Core  (was: Maven Project Web Site)

> Deprecated method copyChars is used in example
> ----------------------------------------------
>
>                 Key: LUCENE-9052
>                 URL: https://issues.apache.org/jira/browse/LUCENE-9052
>             Project: Lucene - Core
>          Issue Type: Bug
>            Reporter: gitesh
>            Priority: Minor
>
> Following documentation page for FST class has some example code.
> [https://lucene.apache.org/core/8_3_0/core/org/apache/lucene/util/fst/package-summary.html]
> {code:java}
>      // Input values (keys). These must be provided to Builder in Unicode sorted order!
>      String inputValues[] = {"cat", "dog", "dogs"};
>      long outputValues[] = {5, 7, 12};
>      
>      PositiveIntOutputs outputs = PositiveIntOutputs.getSingleton();
>      Builder<Long> builder = new Builder<Long>(INPUT_TYPE.BYTE1, outputs);
>      BytesRef scratchBytes = new BytesRef();
>      IntsRefBuilder scratchInts = new IntsRefBuilder();
>      for (int i = 0; i < inputValues.length; i++) {
>        scratchBytes.copyChars(inputValues[i]);
>        builder.add(Util.toIntsRef(scratchBytes, scratchInts), outputValues[i]);
>      }
>      FST<Long> fst = builder.finish();
> {code}
> Compilation of above code with Solr 8.3 libraries complains that no method copyChars found. copyChars method in BytesRef class is deprecated from long time. We should use BytesRefBuilder class instead. Here is the correct code:
> {code:java}
> String inputValues[] = {"cat", "dog", "dogs"};
> long outputValues[] = {5, 7, 12};
> PositiveIntOutputs outputs = PositiveIntOutputs.getSingleton();
> Builder<Long> builder = new Builder<Long>(FST.INPUT_TYPE.BYTE1, outputs);
> BytesRefBuilder scratchBytes = new BytesRefBuilder();
> IntsRefBuilder scratchInts = new IntsRefBuilder();
> for (int i = 0; i < inputValues.length; i++) {
>     scratchBytes.copyChars(inputValues[i]);
>     builder.add(Util.toIntsRef(scratchBytes.get(), scratchInts), outputValues[i]);
> }
> FST<Long> fst = builder.finish();
> {code}
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@lucene.apache.org
For additional commands, e-mail: issues-help@lucene.apache.org