@Override public Hits search(SearchContext searchContext) throws SearchException { searchContext.setSearchEngineId(SearchEngineHelper.GENERIC_ENGINE_ID); BooleanQuery fullQuery = RepositorySearchQueryBuilderUtil.getFullQuery( searchContext); return search(searchContext, fullQuery); }
/** * @deprecated As of Wilberforce (7.0.x), replaced by {@link * IndexSearcherHelperUtil#search(SearchContext, Query)} */ @Deprecated public static Hits search( String searchEngineId, long companyId, Query query, Sort[] sorts, int start, int end) throws SearchException { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setEnd(end); searchContext.setSearchEngineId(searchEngineId); searchContext.setSorts(sorts); searchContext.setStart(start); return IndexSearcherHelperUtil.search(searchContext, query); }
/** * @deprecated As of Wilberforce (7.0.x), replaced by {@link * #search(SearchContext, Query)} */ @Deprecated @Override public Hits search( String searchEngineId, long companyId, Query query, Sort[] sorts, int start, int end) throws SearchException { SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setEnd(end); searchContext.setSearchEngineId(searchEngineId); searchContext.setSorts(sorts); searchContext.setStart(start); return search(searchContext, query); }
protected Hits doSearch(SearchContext searchContext) throws SearchException { searchContext.setSearchEngineId(getSearchEngineId()); Query fullQuery = getFullQuery(searchContext); if (!fullQuery.hasChildren()) { BooleanFilter preBooleanFilter = fullQuery.getPreBooleanFilter(); fullQuery = new MatchAllQuery(); fullQuery.setPreBooleanFilter(preBooleanFilter); } QueryConfig queryConfig = searchContext.getQueryConfig(); fullQuery.setQueryConfig(queryConfig); return IndexSearcherHelperUtil.search(searchContext, fullQuery); }
@Override protected Hits doSearch(SearchContext searchContext) throws SearchException { try { searchContext.setSearchEngineId(getSearchEngineId()); BooleanFilter queryBooleanFilter = new BooleanFilter(); queryBooleanFilter.addRequiredTerm( Field.COMPANY_ID, searchContext.getCompanyId()); Query fullQuery = createFullQuery( queryBooleanFilter, searchContext); if (!fullQuery.hasChildren()) { BooleanFilter preBooleanFilter = fullQuery.getPreBooleanFilter(); fullQuery = new MatchAllQuery(); fullQuery.setPreBooleanFilter(preBooleanFilter); } QueryConfig queryConfig = searchContext.getQueryConfig(); fullQuery.setQueryConfig(queryConfig); return IndexSearcherHelperUtil.search(searchContext, fullQuery); } catch (Exception e) { throw new SearchException(e); } }
@Override public long searchCount(SearchContext searchContext) throws SearchException { PermissionChecker permissionChecker = PermissionThreadLocal.getPermissionChecker(); if ((permissionChecker != null) && isUseSearchResultPermissionFilter(searchContext)) { Hits hits = search(searchContext); return hits.getLength(); } QueryConfig queryConfig = searchContext.getQueryConfig(); queryConfig.setHighlightEnabled(false); queryConfig.setHitsProcessingEnabled(false); queryConfig.setScoreEnabled(false); queryConfig.setQueryIndexingEnabled(false); queryConfig.setQuerySuggestionEnabled(false); searchContext.setSearchEngineId(getSearchEngineId()); BooleanQuery fullQuery = getFullQuery(searchContext); fullQuery.setQueryConfig(queryConfig); return IndexSearcherHelperUtil.searchCount(searchContext, fullQuery); }
searchContext.setSearchEngineId(getSearchEngineId());
@Override public void indexQuerySuggestionDictionaries( String searchEngineId, long companyId) throws SearchException { SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); indexWriter.indexQuerySuggestionDictionaries(searchContext); }
@Override public void commit(String searchEngineId, long companyId) throws SearchException { SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); indexWriter.commit(searchContext); }
@Override public void indexSpellCheckerDictionaries( String searchEngineId, long companyId) throws SearchException { SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); indexWriter.indexSpellCheckerDictionaries(searchContext); }
@Override public void deleteDocuments( String searchEngineId, long companyId, Collection<String> uids, boolean commitImmediately) throws SearchException { if (_indexStatusManager.isIndexReadOnly() || (uids == null) || uids.isEmpty()) { return; } SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); setCommitImmediately(searchContext, commitImmediately); indexWriter.deleteDocuments(searchContext, uids); }
@Override public void indexSpellCheckerDictionary( String searchEngineId, long companyId, Locale locale) throws SearchException { SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); searchContext.setLocale(locale); indexWriter.indexSpellCheckerDictionary(searchContext); }
@Override public void indexQuerySuggestionDictionary( String searchEngineId, long companyId, Locale locale) throws SearchException { SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); searchContext.setLocale(locale); indexWriter.indexQuerySuggestionDictionary(searchContext); }
@Override public void addDocuments( String searchEngineId, long companyId, Collection<Document> documents, boolean commitImmediately) throws SearchException { if (_indexStatusManager.isIndexReadOnly() || (documents == null) || documents.isEmpty()) { return; } SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); for (Document document : documents) { if (_log.isDebugEnabled()) { _log.debug("Add document " + document.toString()); } _searchPermissionChecker.addPermissionFields(companyId, document); } SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); setCommitImmediately(searchContext, commitImmediately); indexWriter.addDocuments(searchContext, documents); }
@Override public void updateDocumentsPartially( String searchEngineId, long companyId, Collection<Document> documents, boolean commitImmediately) { if (indexStatusManager.isIndexReadOnly() || (documents == null) || documents.isEmpty()) { return; } SearchEngine searchEngine = searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); setCommitImmediately(searchContext, commitImmediately); try { indexWriter.partiallyUpdateDocuments(searchContext, documents); } catch (SearchException se) { throw new SystemException(se); } }
@Override public void indexKeyword( String searchEngineId, long companyId, String querySuggestion, float weight, String keywordType, Locale locale) throws SearchException { SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); searchContext.setKeywords(querySuggestion); searchContext.setLocale(locale); indexWriter.indexKeyword(searchContext, weight, keywordType); }
protected Hits doSearch(SearchContext searchContext) { searchContext.setSearchEngineId( _modelSearchSettings.getSearchEngineId()); Query fullQuery = _indexerQueryBuilder.getQuery(searchContext); if (!fullQuery.hasChildren()) { BooleanFilter preBooleanFilter = fullQuery.getPreBooleanFilter(); fullQuery = new MatchAllQuery(); fullQuery.setPreBooleanFilter(preBooleanFilter); } QueryConfig queryConfig = searchContext.getQueryConfig(); fullQuery.setQueryConfig(queryConfig); try { return _indexSearcherHelper.search(searchContext, fullQuery); } catch (SearchException se) { throw new RuntimeException(se); } }
@Override public void deleteDocument( String searchEngineId, long companyId, String uid, boolean commitImmediately) throws SearchException { if (_indexStatusManager.isIndexReadOnly()) { return; } SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); setCommitImmediately(searchContext, commitImmediately); indexWriter.deleteDocument(searchContext, uid); }
@Override public void deleteEntityDocuments( String searchEngineId, long companyId, String className, boolean commitImmediately) throws SearchException { if (_indexStatusManager.isIndexReadOnly()) { return; } SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); if (searchEngine == null) { return; } IndexWriter indexWriter = searchEngine.getIndexWriter(); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); setCommitImmediately(searchContext, commitImmediately); indexWriter.deleteEntityDocuments(searchContext, className); }
@Override public void addDocument( String searchEngineId, long companyId, Document document, boolean commitImmediately) throws SearchException { if (_indexStatusManager.isIndexReadOnly() || (document == null)) { return; } if (_log.isDebugEnabled()) { _log.debug("Add document " + document.toString()); } SearchEngine searchEngine = _searchEngineHelper.getSearchEngine( searchEngineId); IndexWriter indexWriter = searchEngine.getIndexWriter(); _searchPermissionChecker.addPermissionFields(companyId, document); SearchContext searchContext = new SearchContext(); searchContext.setCompanyId(companyId); searchContext.setSearchEngineId(searchEngineId); setCommitImmediately(searchContext, commitImmediately); indexWriter.addDocument(searchContext, document); }