Tom Blackford created OAK-8166:
----------------------------------

             Summary: Index definition with orderable property definitions with 
and without functions breaks index
                 Key: OAK-8166
                 URL: https://issues.apache.org/jira/browse/OAK-8166
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: indexing
    Affects Versions: 1.8.12
            Reporter: Tom Blackford


If an index definition contains the same orderable property with and without 
functions, it will fail to index any node which contains that property. The 
failure will be logged as [1].

Steps to reproduce:
* Configure index with the two property definitions shown at [2].
* Refresh the index definition
* Modify a node that falls under the definition - it will fail with the 
exception shown at [1]
* Modify the 'non-function' index definition to not be orderable 
(orderable=false)
* Refresh the index definition
* Modify the same node - note there is no exception.

Thanks to [~catholicon] for assistance identifying root cause.


[1]
{code}
25.03.2019 15:39:04.135 *WARN* [async-index-update-async] 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor Failed to 
index the node [/content/dam/Unknown-2.png]
java.lang.IllegalArgumentException: DocValuesField 
":dvjcr:content/metadata/dc:title" appears more than once in this document 
(only one value is allowed per field)
        at 
org.apache.lucene.index.SortedDocValuesWriter.addValue(SortedDocValuesWriter.java:62)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.lucene.index.DocValuesProcessor.addSortedField(DocValuesProcessor.java:125)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.lucene.index.DocValuesProcessor.addField(DocValuesProcessor.java:59) 
[org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.lucene.index.TwoStoredFieldsConsumers.addField(TwoStoredFieldsConsumers.java:36)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.lucene.index.DocFieldProcessor.processDocument(DocFieldProcessor.java:236)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.lucene.index.DocumentsWriterPerThread.updateDocument(DocumentsWriterPerThread.java:253)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.lucene.index.DocumentsWriter.updateDocument(DocumentsWriter.java:455)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1534) 
[org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.lucene.index.IndexWriter.updateDocument(IndexWriter.java:1507) 
[org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.writer.DefaultIndexWriter.updateDocument(DefaultIndexWriter.java:86)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor.addOrUpdate(LuceneIndexEditor.java:258)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditor.leave(LuceneIndexEditor.java:140)
 [org.apache.jackrabbit.oak-lucene:1.8.9]
        at 
org.apache.jackrabbit.oak.spi.commit.CompositeEditor.leave(CompositeEditor.java:74)
 [org.apache.jackrabbit.oak-store-spi:1.8.9]
{code}


[2] 
{code}
"dcTitle": {
    "jcr:primaryType": "nt:unstructured",
    "nodeScopeIndex": "true",
    "useInSuggest": "true",
    "ordered": "false",
    "propertyIndex": "true",
    "useInSpellcheck": "true",
    "name": "jcr:content/metadata/dc:title",
    "boost": "2.0"
    },
  "dcTitleLowercase": {
    "jcr:primaryType": "nt:unstructured",
    "ordered": "true",
    "propertyIndex": "true",
    "function": "fn:lower-case(jcr:content/metadata/@dc:title)"
    }
{code}



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to