|
|
|
@ -45,9 +45,9 @@ import java.util.List;
|
|
|
|
|
*/ |
|
|
|
|
public class RecentSearchManager implements AlphaFineSearchProvider { |
|
|
|
|
private static final int MAX_SIZE = 100; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final RecentSearchManager INSTANCE = new RecentSearchManager(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private IndexReader indexReader = null; |
|
|
|
|
//索引存储路径
|
|
|
|
|
private String path = ProductConstants.getEnvHome() + File.separator + "searchIndex"; |
|
|
|
@ -58,18 +58,18 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
|
|
|
|
|
private IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_40, analyzer); |
|
|
|
|
private IndexWriter indexWriter = null; |
|
|
|
|
private SearchResult recentModelList = new SearchResult(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public static RecentSearchManager getInstance() { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return INSTANCE; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public SearchResult getLessSearchResult(String[] searchText) { |
|
|
|
|
|
|
|
|
|
this.recentModelList = new SearchResult(); |
|
|
|
|
SearchResult modelList = new SearchResult(); |
|
|
|
|
for (String aSearchText : searchText) { |
|
|
|
|
recentModelList = getRecentModelList(aSearchText); |
|
|
|
|
addToRecentModelList(aSearchText); |
|
|
|
|
} |
|
|
|
|
if (recentModelList != null && recentModelList.size() > 0) { |
|
|
|
|
modelList.add(new MoreModel(com.fr.design.i18n.Toolkit.i18nText("Fine-Design_Report_AlphaFine_Latest"))); |
|
|
|
@ -86,9 +86,13 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
|
|
|
|
|
public SearchResult getMoreSearchResult(String searchText) { |
|
|
|
|
return new SearchResult(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private synchronized SearchResult getRecentModelList(String searchText) { |
|
|
|
|
return searchBySort(searchText); |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* 将单次遍历的关键词的搜索结果添加到结果集中 |
|
|
|
|
* @param searchText |
|
|
|
|
*/ |
|
|
|
|
private synchronized void addToRecentModelList(String searchText) { |
|
|
|
|
searchBySort(searchText); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public List<AlphaCellModel> getRecentModelList() { |
|
|
|
@ -161,7 +165,6 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
|
|
|
|
|
* 按序搜索 |
|
|
|
|
*/ |
|
|
|
|
private synchronized SearchResult searchBySort(String key) { |
|
|
|
|
recentModelList = new SearchResult(); |
|
|
|
|
try { |
|
|
|
|
|
|
|
|
|
initReader(); |
|
|
|
@ -175,7 +178,6 @@ public class RecentSearchManager implements AlphaFineSearchProvider {
|
|
|
|
|
Query query = new TermQuery(term); |
|
|
|
|
TopFieldDocs docs = searcher.search(query, MAX_SIZE, sortKey); |
|
|
|
|
ScoreDoc[] scores = docs.scoreDocs; |
|
|
|
|
this.recentModelList = new SearchResult(); |
|
|
|
|
//遍历结果
|
|
|
|
|
for (ScoreDoc scoreDoc : scores) { |
|
|
|
|
Document document = searcher.doc(scoreDoc.doc); |
|
|
|
|