Coder Social home page Coder Social logo

lucene-search-plugin's Introduction

lucene-search-plugin

A high-performance search engine for very large ontologies using Apache Lucene.

lucene-search-plugin's People

Contributors

bdionne avatar johardi avatar matthewhorridge avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lucene-search-plugin's Issues

Lucene progress monitor should output message when collecting items to index

Lucene engine outputs the following:

... collecting items to index from http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl 
... found 1939179 items to index 

but never sends a status message to the progress monitor. This "collection" process can take a few seconds, during which there is no status message, nor is the progress bar moving.

SearchTabManager should not throw exception when ontology index does not exist

To replicate: Open Protege > Lucene Query tab (no ontology loaded) > Press Search

Uncaught Exception in thread 'AWT-EventQueue-0' 
java.lang.NullPointerException: null
    at org.apache.lucene.index.DirectoryReader.indexExists(DirectoryReader.java:289) ~[na:na]
    at org.protege.editor.search.nci.SearchTabManager.performSearch(SearchTabManager.java:280) ~[na:na]
    at org.protege.editor.search.ui.QueryEditorPanel.lambda$new$2(QueryEditorPanel.java:144) ~[na:na]
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022) ~[na:1.8.0_74]
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348) ~[na:1.8.0_74]
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402) ~[na:1.8.0_74]
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259) ~[na:1.8.0_74]
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252) ~[na:1.8.0_74]
    at java.awt.Component.processMouseEvent(Component.java:6535) ~[na:1.8.0_74]
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3324) ~[na:1.8.0_74]
    at java.awt.Component.processEvent(Component.java:6300) ~[na:1.8.0_74]
    at java.awt.Container.processEvent(Container.java:2236) ~[na:1.8.0_74]
    at java.awt.Component.dispatchEventImpl(Component.java:4891) ~[na:1.8.0_74]
    at java.awt.Container.dispatchEventImpl(Container.java:2294) ~[na:1.8.0_74]
    at java.awt.Component.dispatchEvent(Component.java:4713) ~[na:1.8.0_74]
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888) ~[na:1.8.0_74]
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525) ~[na:1.8.0_74]
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466) ~[na:1.8.0_74]
    at java.awt.Container.dispatchEventImpl(Container.java:2280) ~[na:1.8.0_74]
    at java.awt.Window.dispatchEventImpl(Window.java:2750) ~[na:1.8.0_74]
    at java.awt.Component.dispatchEvent(Component.java:4713) ~[na:1.8.0_74]
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758) ~[na:1.8.0_74]
    at java.awt.EventQueue.access$500(EventQueue.java:97) ~[na:1.8.0_74]
    at java.awt.EventQueue$3.run(EventQueue.java:709) ~[na:1.8.0_74]
    at java.awt.EventQueue$3.run(EventQueue.java:703) ~[na:1.8.0_74]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_74]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) ~[na:1.8.0_74]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86) ~[na:1.8.0_74]
    at java.awt.EventQueue$4.run(EventQueue.java:731) ~[na:1.8.0_74]
    at java.awt.EventQueue$4.run(EventQueue.java:729) ~[na:1.8.0_74]
    at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_74]
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76) ~[na:1.8.0_74]
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:728) ~[na:1.8.0_74]
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201) [na:1.8.0_74]
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116) [na:1.8.0_74]
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105) [na:1.8.0_74]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101) [na:1.8.0_74]
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93) [na:1.8.0_74]
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82) [na:1.8.0_74]
LOGBACK: No context given for org.protege.editor.core.log.LogManager$1[null]

Default search

Feature request: It would be very good if the lucene tab came up with a default search ready to go, which would include an empty text box for the query string, a default search query type (e.g. contains), and a default property to search on. The last two items should be user-configurable, but the initial default should be set by an admin.

Indexing on Demand

Feature request: on first use, currently the lucene plugin doesn't index until a search is attempted. Nothing happens until the indexing is complete. This is a request for a button/function so that the user can index on demand without the need to attempt an initial search. There should be some visual indication that indexing is ongoing (e.g. progess bar), and on completion of the indexing, the user should be notified (or some visual indication be given) that lucene searches are now enabled.

Add a progress bar to indicate Lucene index(ing) status

There should be some visual indication that indexing is ongoing (e.g. progess bar), and on completion of the indexing, the user should be notified (or some visual indication be given) that lucene searches are now enabled.

Plugin fails to load in Protege

This line in the pom.xml file causes a class cast exception when loading the plugin in Protege. Narrowing the exports to not include OWLEditorKit seems to fix it.

Unable to pick the output CSV file when exporting search results

Selecting the "Browse" button didn't open the browse file dialog but instead it gave error messages:

2016-08-22 15:00:50.875 java[15472:1318674] java.lang.NullPointerException
    at org.protege.editor.core.platform.apple.MacUIUtil.lambda$saveFile$12(MacUIUtil.java:56)
    at org.protege.editor.core.platform.apple.MacUIUtil$$Lambda$136/1625976788.accept(Unknown Source)
    at sun.lwawt.macosx.CFileDialog.queryFilenameFilter(CFileDialog.java:143)
2016-08-22 15:00:50.880 java[15472:1318674] (
    0   CoreFoundation                      0x00007fff8cf5903c __exceptionPreprocess + 172
    1   libobjc.A.dylib                     0x00007fff849f376e objc_exception_throw + 43
    2   CoreFoundation                      0x00007fff8cf58bd9 -[NSException raise] + 9
    3   JavaNativeFoundation                0x0000000126214372 JNFCallBooleanMethod + 211
    4   libawt_lwawt.dylib                  0x00000001293dcdf7 -[CFileDialog askFilenameFilter:] + 88
    5   libawt_lwawt.dylib                  0x00000001293dcd90 -[CFileDialog panel:shouldEnableURL:] + 156
    6   AppKit                              0x00007fff8a90db01 -[NSSavePanel _delegateShouldEnableURL:] + 236
    7   AppKit                              0x00007fff8a90e240 -[NSSavePanel _shouldEnableURL:isDirectoryURLHandler:] + 47
    8   AppKit                              0x00007fff8a90e3c5 -[NSSavePanel fileBrowser:shouldEnableURL:isDirectory:isPackage:] + 109
    9   AppKit                              0x00007fff8abb6326 -[NSNavFinderViewFileBrowser finderView:shouldEnableURL:itemIsContainer:itemIsPackage:] + 96
    10  FinderKit                           0x00007fff8b566f85 -[FIFinderViewGutsController panelDisableNode:] + 166
    11  FinderKit                           0x00007fff8b5663c0 -[FIFinderViewGutsController nodeIsDimmed:] + 348
    12  FinderKit                           0x00007fff8b4e9080 -[FI_TListNameCellView updateTagsImageForNode:selected:] + 81
    13  FinderKit                           0x00007fff8b4f7b10 -[FI_TListViewController outlineView:viewForTableColumn:item:] + 663
    14  AppKit                              0x00007fff8a4160d0 -[NSTableView(NSTableViewViewBased) makeViewForTableColumn:row:] + 76
    15  AppKit                              0x00007fff8a415541 -[NSTableRowData _addViewToRowView:atColumn:row:] + 300
    16  AppKit                              0x00007fff8a41527a -[NSTableRowData _addViewsToRowView:atRow:] + 184
    17  AppKit                              0x00007fff8a4139ad -[NSTableRowData _initializeRowView:atRow:] + 373
    18  AppKit                              0x00007fff8a412ad2 -[NSTableRowData _addRowViewForVisibleRow:withPriorView:] + 396
    19  AppKit                              0x00007fff8a4b29d1 -[NSTableRowData _addRowViewForVisibleRow:withPriorRowIndex:inDictionary:withRowAnimation:] + 254
    20  AppKit                              0x00007fff8a4b27a3 -[NSTableRowData _unsafeUpdateVisibleRowEntries] + 1856
    21  AppKit                              0x00007fff8a4b1fc7 -[NSTableRowData updateVisibleRowViews] + 230
    22  AppKit                              0x00007fff8a4b197d -[NSTableView layout] + 178
    23  FinderKit                           0x00007fff8b501f09 -[FI_TListView layout] + 162
    24  AppKit                              0x00007fff8a4420b4 -[NSView _layoutSubtreeWithOldSize:] + 373
    25  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    26  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    27  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    28  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    29  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    30  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    31  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    32  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    33  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    34  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    35  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    36  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    37  AppKit                              0x00007fff8a442305 -[NSView _layoutSubtreeWithOldSize:] + 966
    38  AppKit                              0x00007fff8a441d60 -[NSView layoutSubtreeIfNeeded] + 885
    39  AppKit                              0x00007fff8a4418ba _NSViewLayoutSubtreesThatUseAutolayoutIfNeeded + 71
    40  AppKit                              0x00007fff8a441841 -[NSWindow(NSConstraintBasedLayout) _layoutViewTree] + 84
    41  AppKit                              0x00007fff8a460d3d -[NSWindow(NSConstraintBasedLayout) layoutIfNeeded] + 246
    42  AppKit                              0x00007fff8a30552e _handleWindowNeedsDisplayOrLayoutOrUpdateConstraints + 612
    43  AppKit                              0x00007fff8aa3b171 __83-[NSWindow _postWindowNeedsDisplayOrLayoutOrUpdateConstraintsUnlessPostingDisabled]_block_invoke1540 + 46
    44  CoreFoundation                      0x00007fff8ce75127 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23
    45  CoreFoundation                      0x00007fff8ce75080 __CFRunLoopDoObservers + 368
    46  CoreFoundation                      0x00007fff8ce67188 __CFRunLoopRun + 872
    47  CoreFoundation                      0x00007fff8ce66bd8 CFRunLoopRunSpecific + 296
    48  HIToolbox                           0x00007fff8f0a056f RunCurrentEventLoopInMode + 235
    49  HIToolbox                           0x00007fff8f0a01ee ReceiveNextEventCommon + 179
    50  HIToolbox                           0x00007fff8f0a012b _BlockUntilNextEventMatchingListInModeWithFilter + 71
    51  AppKit                              0x00007fff8a3028ab _DPSNextEvent + 978
    52  AppKit                              0x00007fff8a301e58 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346
    53  libosxapp.dylib                     0x0000000128e8742a -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 124
    54  AppKit                              0x00007fff8a4cd887 -[NSApplication _realDoModalLoop:peek:] + 666
    55  AppKit                              0x00007fff8a4c9e76 -[NSApplication runModalForWindow:] + 119
    56  AppKit                              0x00007fff8a910a84 -[NSSavePanel runModal] + 323
    57  libawt_lwawt.dylib                  0x00000001293dcf9f -[CFileDialog safeSaveOrLoad] + 391
    58  Foundation                          0x00007fff89847dd0 __NSThreadPerformPerform + 293
    59  CoreFoundation                      0x00007fff8ce75a01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    60  CoreFoundation                      0x00007fff8ce67b8d __CFRunLoopDoSources0 + 269
    61  CoreFoundation                      0x00007fff8ce671bf __CFRunLoopRun + 927
    62  CoreFoundation                      0x00007fff8ce66bd8 CFRunLoopRunSpecific + 296
    63  HIToolbox                           0x00007fff8f0a056f RunCurrentEventLoopInMode + 235
    64  HIToolbox                           0x00007fff8f0a02ea ReceiveNextEventCommon + 431
    65  HIToolbox                           0x00007fff8f0a012b _BlockUntilNextEventMatchingListInModeWithFilter + 71
    66  AppKit                              0x00007fff8a3028ab _DPSNextEvent + 978
    67  AppKit                              0x00007fff8a301e58 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:] + 346
    68  libosxapp.dylib                     0x0000000128e8742a -[NSApplicationAWT nextEventMatchingMask:untilDate:inMode:dequeue:] + 124
    69  AppKit                              0x00007fff8a2f7af3 -[NSApplication run] + 594
    70  libosxapp.dylib                     0x0000000128e8723e +[NSApplicationAWT runAWTLoopWithApp:] + 156
    71  libawt_lwawt.dylib                  0x000000012940a54b -[AWTStarter starter:] + 905
    72  Foundation                          0x00007fff89847dd0 __NSThreadPerformPerform + 293
    73  CoreFoundation                      0x00007fff8ce75a01 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
    74  CoreFoundation                      0x00007fff8ce67b8d __CFRunLoopDoSources0 + 269
    75  CoreFoundation                      0x00007fff8ce671bf __CFRunLoopRun + 927
    76  CoreFoundation                      0x00007fff8ce66bd8 CFRunLoopRunSpecific + 296
    77  java                                0x0000000109cd2463 CreateExecutionEnvironment + 871
    78  java                                0x0000000109cce1ac JLI_Launch + 1952
    79  java                                0x0000000109cd44c0 main + 101
    80  java                                0x0000000109ccda04 start + 52
)

Prettify query clause close button

The rendering of the icon is not fantastic after scaling down. Also, it should be just a flat 'x'. The positioning can be improved too.

Added query panel should not overlay with previous ones

To replicate:

  1. Have 1 basic query in editor to start with
  2. Add nested or negated query
  3. Remove the very first basic query
  4. Add a new basic query

The last (basic) query will be inserted in the same vertical location as the nested or negated query inserted in (2). This happens because the vertical location is chosen according to the number of queries in the editor, and doesn't take into account the actual gridbag constraints with which panels were added to the editor.

Need the ability to display classes being exported

This is functionality we had in the old system. The ExportToCSVAction could be subclassed to optionally display a list of classes.

The classes could then be deleted or added to. This is used by the report writer in edit tab.

functionality

I neglected to add this to the requirements, though it is in the plan, my bad. Please assess how much effort it takes to add this.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.