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)