Revision: 1188
Author:
emili...@gmail.com
Date: Wed May 6 12:18:07 2015 UTC
Log: new search method
https://code.google.com/p/vosao/source/detail?r=1188
Modified:
/trunk/kernel/src/main/java/org/vosao/search/impl/SearchEngineImpl.java
=======================================
--- /trunk/kernel/src/main/java/org/vosao/search/impl/SearchEngineImpl.java
Sun Nov 23 18:55:58 2014 UTC
+++ /trunk/kernel/src/main/java/org/vosao/search/impl/SearchEngineImpl.java
Wed May 6 12:18:07 2015 UTC
@@ -34,6 +34,7 @@
import org.vosao.common.VosaoContext;
import org.vosao.dao.Dao;
import org.vosao.entity.LanguageEntity;
+import org.vosao.entity.PageEntity;
import org.vosao.search.Hit;
import org.vosao.search.SearchEngine;
import org.vosao.search.SearchIndex;
@@ -117,6 +118,42 @@
return result;
}
+ @Override
+ public List<PageEntity> search(SearchResultFilter filter, String query,
+ int start, int count, String language) {
+ // Search in language index first for all results
+
+
logger.info("into engine.search : language = " + language);
+
+ List<PageEntity> pages = getSearchIndex(language).search(filter, query);
+
+ // Search in all other languages for all results
+ for (LanguageEntity lang : getDao().getLanguageDao().select()) {
+ if (!lang.getCode().equals(language)) {
+
+
logger.info("Searching in " + lang.getCode());
+
+ pages.addAll(getSearchIndex(lang.getCode()).search(filter, query));
+ }
+ }
+
+
logger.info("Number of pages = " + pages.size());
+
+ int startIndex = start < pages.size() ? start : pages.size();
+ int endIndex = startIndex + count;
+ if (count == -1) {
+ endIndex = pages.size();
+ }
+ if (endIndex > pages.size()) {
+ endIndex = pages.size();
+ }
+
+
logger.info("out of engine.search");
+ return ListUtil.slice(pages, startIndex, count);
+
+ }
+
+
@Override
public void updateIndex(Long pageId) throws IOException {
for (LanguageEntity language : getDao().getLanguageDao().select()) {