1111
1212import org .apache .lucene .document .SortedSetDocValuesField ;
1313import org .apache .lucene .document .StoredField ;
14+ import org .apache .lucene .index .BinaryDocValues ;
1415import org .apache .lucene .index .LeafReader ;
1516import org .apache .lucene .index .SortedSetDocValues ;
1617import org .apache .lucene .util .BytesRef ;
2829import org .elasticsearch .index .IndexSettings ;
2930import org .elasticsearch .index .IndexVersion ;
3031import org .elasticsearch .index .IndexVersions ;
32+ import org .elasticsearch .index .fielddata .MultiValuedSortedBinaryDocValues ;
3133import org .elasticsearch .index .query .SearchExecutionContext ;
3234import org .elasticsearch .search .lookup .SourceFilter ;
3335import org .elasticsearch .xcontent .XContentBuilder ;
@@ -553,7 +555,7 @@ public BytesRef filterValue(BytesRef value, Function<Map<String, Object>, Map<St
553555 DOC_VALUES_IGNORED_SOURCE {
554556 @ Override
555557 public IgnoredSourceLeafLoader createLeafLoader (LeafReader leafReader ) throws IOException {
556- SortedSetDocValues docValues = leafReader . getSortedSetDocValues ( NAME );
558+ var docValues = MultiValuedSortedBinaryDocValues . from ( leafReader , NAME );
557559 return new IgnoredSourceLeafLoader () {
558560 @ Override
559561 public Map <String , List <NameValue >> loadAllIgnoredFields (
@@ -567,8 +569,7 @@ public Map<String, List<NameValue>> loadAllIgnoredFields(
567569 Map <String , List <NameValue >> objectsWithIgnoredFields = new HashMap <>();
568570 int count = docValues .docValueCount ();
569571 for (int i = 0 ; i < count ; i ++) {
570- long ord = docValues .nextOrd ();
571- BytesRef encoded = docValues .lookupOrd (ord );
572+ BytesRef encoded = docValues .nextValue ();
572573 List <NameValue > nameValues = CoalescedIgnoredSourceEncoding .decode (encoded );
573574 assert nameValues .isEmpty () == false ;
574575 for (var nameValue : nameValues ) {
@@ -595,8 +596,7 @@ public Map<String, List<NameValue>> loadSingleIgnoredField(
595596 }
596597 int count = docValues .docValueCount ();
597598 for (int i = 0 ; i < count ; i ++) {
598- long ord = docValues .nextOrd ();
599- BytesRef encoded = docValues .lookupOrd (ord );
599+ BytesRef encoded = docValues .nextValue ();
600600 List <NameValue > nameValues = CoalescedIgnoredSourceEncoding .decode (encoded );
601601 assert nameValues .isEmpty () == false ;
602602 String fieldPath = nameValues .getFirst ().name ();
@@ -622,8 +622,11 @@ public void writeIgnoredFields(Collection<NameValue> ignoredFieldValues) {
622622
623623 for (var docEntry : entriesMap .entrySet ()) {
624624 for (var fieldEntry : docEntry .getValue ().entrySet ()) {
625- docEntry .getKey ()
626- .add (new SortedSetDocValuesField (NAME , CoalescedIgnoredSourceEncoding .encode (fieldEntry .getValue ())));
625+ MultiValuedBinaryDocValuesField .SeparateCount .addToSeparateCountMultiBinaryFieldInDoc (
626+ docEntry .getKey (),
627+ NAME ,
628+ CoalescedIgnoredSourceEncoding .encode (fieldEntry .getValue ())
629+ );
627630 }
628631 }
629632 }
0 commit comments