db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Hillegas (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (DERBY-590) How to integrate Derby with Lucene API?
Date Fri, 27 Jun 2014 17:42:26 GMT

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

Rick Hillegas updated DERBY-590:
--------------------------------

    Attachment: derby-590-31-aa-multiField.diff

Attaching derby-590-xx-publicAPILuceneUtils.diff. This patch changes the api of the Lucene
plugin as Knut and I discussed. The Lucene tests run cleanly with this patch.

This patch makes the following changes:

1) Adds a new interface to the public api: org.apache.derby.optional.api.LuceneIndexDescriptor.
This interface allows the application developer to describe the following:

a) The names of fields which can be specified in Lucene queries.

b) The Analyzer which should be used to build the index.

c) The QueryParser which should be used to parse Lucene queries against the index.

2) Changes the signatures of createIndex() and updateIndex(). The routines now take an indexDescriptorMaker
rather than an analyzerMaker.

3) Changes the signature of the index-specific table function which is used to run queries
against the index. The queryParserMaker argument has been removed. Internally, the query uses
the QueryParser returned by the LuceneIndexDescriptor which was bound to the index at createIndex()
time.

4) Changes the signature of the table returned by listIndexes(). The table no longer has an
analyzerMaker column. Instead, it has an indexDescriptorMaker column.

I expect that I will file a follow-on patch to address some more issues which I want to explore.
I think that we need to prevent a LuceneIndexDescriptor from specifying field names which
conflict with the names of the key and text columns.

After that, I plan to update the functional spec and file a doc issue to address these changes.


Touches the following files:

--------------------

A       java/optional/org/apache/derby/optional/api/LuceneIndexDescriptor.java
M       java/optional/org/apache/derby/optional/api/LuceneUtils.java
M       tools/javadoc/publishedapi.ant

Support for the new interface in the public api.

--------------------

M       java/optional/org/apache/derby/optional/lucene/LuceneQueryVTI.java
M       java/optional/org/apache/derby/optional/lucene/LuceneSupport.java
M       java/optional/org/apache/derby/optional/lucene/LuceneListIndexesVTI.java

Signature changes. Support for multi-field queries.

--------------------

M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/myLuceneClasses.jar
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneCoarseAuthorizationTest.java
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneBackupTest.java
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportPermsTest.java
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneInMemoryTest.java
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneSupportTest.java
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneCollationTest.java
M       java/testing/org/apache/derbyTesting/functionTests/tests/lang/LuceneJarLoadingTest.java

Adjusted tests to handle the new api. Added Knut's multi-field test case.


> How to integrate Derby with Lucene API?
> ---------------------------------------
>
>                 Key: DERBY-590
>                 URL: https://issues.apache.org/jira/browse/DERBY-590
>             Project: Derby
>          Issue Type: Improvement
>          Components: Documentation, SQL
>            Reporter: Abhijeet Mahesh
>              Labels: derby_triage10_11
>         Attachments: LucenePlugin.html, LucenePlugin.html, LucenePlugin.html, derby-590-01-ag-publicAccessToLuceneRoutines.diff,
derby-590-01-ah-publicAccessToLuceneRoutines.diff, derby-590-01-am-publicAccessToLuceneRoutines.diff,
derby-590-02-aa-cleanupFindbugsErrors.diff, derby-590-03-aa-removeTestingDiagnostic.diff,
derby-590-04-aa-removeIDFromListIndexes.diff, derby-590-05-aa-accessDeclaredMembers.diff,
derby-590-06-aa-suppressAccessChecks.diff, derby-590-07-aa-accessClassInPackage.sun.misc.diff,
derby-590-08-aa-omitLuceneFlag.diff, derby-590-09-aa-localeSensitiveAnalysis.diff, derby-590-10-aa-fixLocaleTest.diff,
derby-590-11-aa-moveCode.diff, derby-590-12-aa-newJar.diff, derby-590-13-aa-indexViews.diff,
derby-590-14-aa-coarseGrainedAuthorization.diff, derby-590-15-aa-requireHardUpgrade.diff,
derby-590-16-aa-adjustUpgradeTest.diff, derby-590-17-aa-closeInputStreamOnPropertiesFile.diff,
derby-590-18-aa-cleanupAPI.diff, derby-590-19-aa-cleanupAPI2.diff, derby-590-20-aa-customQueryParser.diff,
derby-590-21-aa-noTimeTravel.diff, derby-590-22-aa-cleanupPrivacy.diff, derby-590-23-aa-correctTestLocale.diff,
derby-590-24-ad-luceneDirectory.diff, derby-590-26-ac-backupRestore.diff, derby-590-26-ad-backupRestoreEncryption.diff,
derby-590-27-aa-publicAPILuceneUtils.diff, derby-590-28-renameLuceneJars.diff, derby-590-29-aa-useLucene_4.7.1.diff,
derby-590-30-aa-nullableScoreCeiling.diff, derby-590-31-aa-multiField.diff, exceptions.diff,
lucene_demo.diff, lucene_demo_2.diff, multifield-with-custom-tokenizers.diff, multifield.diff,
netbeans.diff, netbeans2.diff
>
>
> In order to use derby with lucene API what should be the steps to be taken? 



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

Mime
View raw message