import org.compass.core.Compass;
import org.compass.core.CompassHits;
import org.compass.core.CompassQuery;
import org.compass.core.CompassSession;
import org.compass.core.CompassTemplate;
import org.compass.core.CompassQuery.SortDirection;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
...
public List<Product> searchProducts(String topMenuId, String middleMenuId, String menuId, String brandId,
String searchWord, String orderByColumn) {
Analyzer analyzer = new net.paoding.analysis.analyzer.PaodingAnalyzer();
Reader r = new StringReader(searchWord);
TokenStream ts = (TokenStream) analyzer.tokenStream("", r);
log.debug("=====paoding_analyzer start ====");
Token t;
try {
while ((t = ts.next()) != null) {
log.debug(t.termText());
}
} catch (IOException e) {
e.printStackTrace();
}
log.debug("=====paoding_analyzer end====");
Compass compass = compassTemplate.getCompass();
CompassSession session = compass.openSession();
List<Product> list = new ArrayList<Product>();
StringBuilder sql = new StringBuilder();
sql.append(searchWord);
boolean hasAnd = false;
if (StringUtils.isNotEmpty(menuId)) {
sql.append(hasAnd ? "" : " AND ");
sql.append(" product_menu_id:").append(menuId);
hasAnd = true;
}
if (StringUtils.isNotEmpty(brandId)) {
sql.append(hasAnd ? "" : " AND ");
sql.append(" product_brand_id:").append(brandId);
}
log.debug(sql.toString());
CompassQuery compassQuery = session.queryBuilder().queryString(sql.toString()).toQuery();
//排序部分,SortDirection.AUTO,SortDirection.REVERSE 逆序排序
if (StringUtils.isNotEmpty(orderByColumn)) {
if("click_ratio".equals(orderByColumn)){
compassQuery.addSort( orderByColumn ,
CompassQuery.SortPropertyType.INT,
SortDirection.AUTO);
}else if("saled_amount".equals(orderByColumn)){
compassQuery.addSort( orderByColumn ,
CompassQuery.SortPropertyType.INT,
SortDirection.AUTO);
}else if("web_price".equals(orderByColumn)){
compassQuery.addSort( orderByColumn ,
CompassQuery.SortPropertyType.FLOAT,
SortDirection.AUTO);
}else if("crtdate".equals(orderByColumn)){
compassQuery.addSort( orderByColumn ,
CompassQuery.SortPropertyType.STRING,
SortDirection.AUTO);
}
}
CompassHits hits = compassQuery.hits();
log.debug("hits:" + hits.getLength());
for (int i = 0; i < hits.length(); i++) {
Product p = (Product) hits.data(i);
// p.setName(hits.highlighter(i).fragment("name"));
// p.setBrand(hits.highlighter(i).fragment("brand"));
list.add(p);
}
return list;
}
...
分享到:
相关推荐
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
Java生成密钥、保存密钥的实例源码,通过本源码可以了解到Java如何产生单钥加密的密钥(myKey)、产生双钥的密钥对(keyPair)、如何保存公钥的字节数组、保存私钥到文件privateKey.dat、如何用Java对象序列化保存私钥...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...
AutoTips基于搜索引擎Apache Lucene实现。AutoTips提供统一UI。 WAP浏览器 j2wap j2wap 是一个基于Java的WAP浏览器,目前处于BETA测试阶段。它支持WAP 1.2规范,除了WTLS 和WBMP。 Java注册表操作类 jared jared是...