Uploaded image for project: 'Isis'
  1. Isis
  2. ISIS-383

[OUT OF SCOPE] Integrate Apache Lucene or ElasticSearch

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: core-1.1.0
    • Fix Version/s: 1.16.0
    • Component/s: Core
    • Labels:
      None

      Description

      Isis is most often used with its JDO integration, a fairly conventional ORM. Searching for existing domain objects therefore requires a query to be defined. But sometimes users want to just search for any object (like searching the web). This ticket is to integrate Isis so that its domain objects can be indexed by Lucene and thus provide a generic search capability.

      As of 1.10.0 this could be implemented using a subscriber:

      @DomainService(nature=DOMAIN)
      public class LuceneSubscriber extends AbstractSubscriber {
          @Subscribe public void on(ObjectPersistingEvent ev) { ... }
          @Subscribe public void on(ObjectUpdatingEvent ev) { ... }
          @Subscribe public void on(ObjectRemovingEvent ev) { ... }
      }
      

      Then one would also provide some sort of repository to query the Lucene datastore:

      @DomainService(nature=DOMAIN)
      public class LuceneRepository {
          @Action(semantics=SAFE)
          List<Object> find(String text) { ... }
      }
      

      There is also an attachment to this ticket, based on an earlier spike by Maurizio. Note that that was done before the subscribers were available.

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                danhaywood Dan Haywood
              • Votes:
                2 Vote for this issue
                Watchers:
                6 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: