You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Chetan Mehrotra (JIRA)" <ji...@apache.org> on 2014/08/18 16:37:20 UTC

[jira] [Updated] (OAK-2005) Use separate Lucene index for performing property related queries

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

Chetan Mehrotra updated OAK-2005:
---------------------------------

    Attachment: OAK-2005-1.patch

Initial patch for above feature. Currently one testcase failing and rest all passing

* Multiple Lucene property index definition supported. For example to index {{propa}} create a definition like 
{code:javascript}
{
  "jcr:primaryType": "oak:QueryIndexDefinition",
  "type": "lucene",
  "fulltextEnabled": false,
  "includePropertyNames": ["propa"],
  "propa" : {"propertyType" : "long"}
}
{code}
The above defintion created a lucene based property index which indexes property {{propa}} of type long. Multiple property names can be provided as part of same definition


*TODO*
* Support for restricting property definitions by nodeTypes i.e. support for {{declaraingNodeTypes}}
* Support for restricting index to properties present in certain paths
* Support for in clause


> Use separate Lucene index for performing property related queries 
> ------------------------------------------------------------------
>
>                 Key: OAK-2005
>                 URL: https://issues.apache.org/jira/browse/OAK-2005
>             Project: Jackrabbit Oak
>          Issue Type: New Feature
>          Components: oak-lucene
>            Reporter: Chetan Mehrotra
>            Assignee: Chetan Mehrotra
>             Fix For: 1.1
>
>         Attachments: OAK-2005-1.patch
>
>
> Oak Lucene has some support for working with multiple Lucene directories. Currently Oak uses a single Lucene directory to store the full text index. It would be worthwhile to investigate if we can use a separate Lucene index to store specific properties only and use it to perform property related queries.
> * A separate Lucene directory would be used to store explicitly configured list of properties
> * The properties would be stored with there type
> ** JCR Long - long
> ** JCR Double - double
> ** JCR Date - long - The data value can be stored in long but with lesser precision say upto second or even minutes
> * The values would stored "as is" i.e. without tokenization
> Possible benefits of such an index would be (ofcourse need be validated!)
> * Compact storage - Less memory would be used to store the index
> * Native support for Order By
> * Improved performance for like query - Specifically 'foo%', '%foo'



--
This message was sent by Atlassian JIRA
(v6.2#6252)