Package it.unibz.instasearch.indexing

Examples of it.unibz.instasearch.indexing.SearchQuery


    InstaSearchView searchView = InstaSearchUI.showSearchView();
   
    if( searchView != null ) {
      int maxResults = SearchQuery.UNLIMITED_RESULTS;
      searchString += convertFilterToString(filter);
      SearchQuery searchQuery = new SearchQuery(searchString, maxResults);
      searchQuery.setExact( similarSearch.getSelection() );
      searchQuery.setFilter(null); // put filters in search string instead
     
      searchView.setSearchString(searchString); // to display
      searchView.search(searchQuery, false);
    }
   
View Full Code Here


      MatchLine lineMatches = (MatchLine) element;
      return decorateLineMatches(lineMatches);
     
    } else if( element instanceof SearchQuery ) {
      // we have search query in 2 cases:
      SearchQuery query = (SearchQuery) element;
     
      if( !query.isLimited() )
        return new StyledString(MORE_RESULTS_LABEL);
      else
        return new StyledString(FIND_SIMILAR_LABEL)
    }
   
View Full Code Here

  public Object[] getElements(Object searchQueryObj)
  { 
    if( searchQueryObj==null || !(searchQueryObj instanceof SearchQuery) )
      return Collections.EMPTY_LIST.toArray(); // not searching
   
    SearchQuery searchQuery = (SearchQuery) searchQueryObj;
    String searchString = searchQuery.getSearchString();
   
    if( searchString==null || searchString.toString().length() < Searcher.MIN_QUERY_LENGTH )
      return Collections.EMPTY_LIST.toArray();
   
    try
    {
      if( ! indexer.isIndexed() )
        return NO_INDEX_MESSAGE;
    } catch(Exception e)
    {
      InstaSearchPlugin.log(e);
      return new Exception[]{e};
    }
   
    if( searchQuery.equals(currentSearchQuery) && cachedResults != null ) // same query
      return cachedResults;
   
    SearchResult result = null;
    cachedResults = null;
    resultCount = 0;
    Object[] resultArray = null;
   
    if(searchString != null)
    {
      try {
        result = searcher.search(searchQuery); // do the search
        currentSearchQuery = searchQuery;
       
        if( result == null ) {
          if( !searchQuery.isFuzzy() ) {
            SearchQuery newQuery = new SearchQuery(searchQuery);
            newQuery.setExact(false);
            newQuery.setFuzzy(true);
            resultArray = new Object[]{NO_RESULTS_MESSAGE, newQuery}; // add fuzzy query
          } else {
            resultArray = new Object[]{NO_RESULTS_MESSAGE};
          }
         
          cachedResults = resultArray;
         
          return resultArray;
        }
       
        searchTerms = result.getSearchTerms();
       
      } catch (Exception e) {
        InstaSearchPlugin.log(e);
        return new Exception[]{e};
      }
    }
   
    List<SearchResultDoc> resultDocs = result.getResultDocs();
    this.resultCount = resultDocs.size();
   
    boolean addMoreResults = false, addFindSimilar = false;
   
    if( searchQuery.isLimited() && result.isFull() ) { // if only showing limited number of matches
      addMoreResults = true;
    }
    else
    {
      if( searchQuery.isExact() && !searchQuery.isFuzzy() ) // if query is exact, can try search for individual tokens
        addFindSimilar = true;
    }
   
    if( addMoreResults || addFindSimilar )
      resultArray = new Object[resultCount + 1]// +1 because we append "More..." element (a SearchQuery object)
    else
      resultArray = new Object[resultCount];
   
    resultDocs.toArray(resultArray);
   
    if( addMoreResults ) { // if more results, create More result entry (return all elements)
      SearchQuery moreResultsQuery = new SearchQuery(currentSearchQuery);
      moreResultsQuery.setMaxResults(SearchQuery.UNLIMITED_RESULTS); // all results
      resultArray[resultCount] = moreResultsQuery;
    }
    else if( addFindSimilar )
    {
      SearchQuery findSimilarQuery = new SearchQuery(currentSearchQuery);
      findSimilarQuery.setExact(false);
      resultArray[resultCount] = findSimilarQuery;
    }
   
    cachedResults = resultArray;
   
View Full Code Here

    searchJob.schedule(searchQuery, selectLast, 0);
  }
 
  private SearchQuery getSearchQuery()
  {
    SearchQuery sq = new SearchQuery(getSearchText(), maxResults );
    sq.setFilter( searchViewControl.getFilter() );
    return sq;
  }
View Full Code Here

  }
 
  private void fillContextMenu(IMenuManager manager)
  {
    boolean haveSelection = ! resultViewer.getSelection().isEmpty();
    SearchQuery sq = (SearchQuery) resultViewer.getInput();
   
    openAction.setEnabled( haveSelection  );
    manager.add(openAction);
   
    boolean showingItems = resultViewer.getTree().getItemCount() > 0;
   
    Action expandAll = new Action("Expand All", InstaSearchPlugin.getImageDescriptor("expandall")) {
      public void run() {
        expandAll();
      }
    };
    expandAll.setEnabled( showingItems  );
    manager.add(expandAll);
   
    Action collapseAll = new Action("Collapse All", InstaSearchPlugin.getImageDescriptor("collapseall")) {
      public void run() {
        collapseAll();
      }
    };
    collapseAll.setEnabled( showingItems  );
    manager.add(collapseAll);
   
    Action refresh = new Action("Refresh") {
      public void run() {
        refreshSearch();
      }
    };
    refresh.setAccelerator(SWT.F5);
    manager.add(refresh);
   
    Action delete = new Action("Delete Match") {
      public void run() {
        deleteSelectedMatch();
      }
    };
    delete.setAccelerator(SWT.DEL);
    manager.add(delete);
   
    Action moreResults = new Action("More Results...") {
      public void run() {
        showAllResults();
      }
    };
    moreResults.setEnabled( showingItems );
    manager.add(moreResults);
   
    if( sq == null || !sq.isLimited() )
      moreResults.setEnabled(false);
       
  }
View Full Code Here

 
  /**
   *
   */
  public void showAllResults() {
    SearchQuery sq = (SearchQuery)resultViewer.getInput();
    SearchQuery newSq = new SearchQuery(sq);
    newSq.setMaxResults(SearchQuery.UNLIMITED_RESULTS);
    search(newSq, false);
  }
View Full Code Here

 
  private void refreshSearch()
  {
    InstaSearchPlugin.getInstaSearch().updateIndex();
   
    SearchQuery input = (SearchQuery) resultViewer.getInput();
    if( input == null ) return;
    resultViewer.setInput(null); // clear cached search results
   
    searchJob.cancel();
    searchJob.schedule(input, false, typingSearchDelay);
View Full Code Here

TOP

Related Classes of it.unibz.instasearch.indexing.SearchQuery

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.