Uploaded image for project: 'Causeway'
  1. Causeway
  2. CAUSEWAY-383

[OUT OF SCOPE] Integrate Apache Lucene or ElasticSearch

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: Closed
    • Major
    • Resolution: Fixed
    • core-1.1.0
    • 1.16.0
    • Core
    • 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

        1. isis-lucene.zip
          25 kB
          Daniel Keir Haywood

        Issue Links

          Activity

            People

              Unassigned Unassigned
              danhaywood Daniel Keir Haywood
              Votes:
              2 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: