sphinx java_把 sphinx 官方提供的 java api 添加到 maven 库
如果客户端和服务器版本不一致可能会出现如下错误DEPRECATED: Do not call this method or, even better, use SphinxQL instead of an API
Error: searchd error: client version is higher than daemon version (client is v.1.25, daemon is v.1.22)
找了半天 sphinx java api 原来在官方源代码包里就有
1.首先下载官方源码包 https://github.com/sphinxsearch/sphinx (如果服务器已经安装了,请到服务器的对应目录编译 jar 包,否则会出现上面的错误)
2.然后到./api/java目录下执行make即可得到sphinxapi.jar文件(注意需要在 unix 系统环境,查看 sphinx 官方说明文档)
3.使用 Intellij 的插件来导入本地 jar 到 maven 库 http://mengkang.net/437.html/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home/bin/java "-Dmaven.home=/Applications/IntelliJ IDEA 14.app/Contents/plugins/maven/lib/maven3" "-Dclassworlds.conf=/Applications/IntelliJ IDEA 14.app/Contents/plugins/maven/lib/maven3/bin/m2.conf" -Didea.launcher.port=7535 "-Didea.launcher.bin.path=/Applications/IntelliJ IDEA 14.app/Contents/bin" -Dfile.encoding=UTF-8 -classpath "/Applications/IntelliJ IDEA 14.app/Contents/plugins/maven/lib/maven3/boot/plexus-classworlds-2.4.jar:/Applications/IntelliJ IDEA 14.app/Contents/lib/idea_rt.jar" com.intellij.rt.execution.application.AppMain org.codehaus.classworlds.Launcher -Didea.version=14.1 -DskipTests=true org.apache.maven.plugins:maven-install-plugin:2.3.1:install-file \
-Dfile=/Users/zhoumengkang/Downloads/sphinx-master/api/java/sphinxapi.jar \
-DgroupId=com.sphinxsearch \
-DartifactId=sphinxsearch \
-Dversion=1.22 \
-Dpackaging=jar \
-DgeneratePom=true
4.到自己的pom.xml里面添加刚刚配置的参数
com.sphinxsearch
sphinxsearch
1.22
至此就导入完毕就可以使用了sphinx了。
根据官方的test.java写了一个简单的搜索,还是很方便的呢。public static IdPages sphinxSearch(int type, String query, int offset, int limit) throws SphinxException {
int totalNum = 0;
List ids = new ArrayList<>();
//========================= sphinx 配置 ========================
String host = TopitConfig.getString("sphinx.host");
int port;
if (type == SearchUser) {
port = TopitConfig.getint("sphinx.user.port");
}else if(type == SearchFeed){
port = TopitConfig.getint("sphinx.feed.port");
}else{
return null;
}
int mode = SphinxClient.SPH_MATCH_ALL;
String index = "*";
int sortMode = SphinxClient.SPH_SORT_RELEVANCE;
String sortClause = "";
SphinxClient cl = new SphinxClient();
cl.SetServer(host, port);
cl.SetWeights(new int[]{100, 1 });
cl.SetMatchMode(mode);
cl.SetLimits(offset, limit);
cl.SetSortMode(sortMode, sortClause);
//========================= sphinx 配置 ========================
StringBuffer q = new StringBuffer();
q.append(query);
SphinxResult res = cl.Query(q.toString(), index);
if ( res == null ) {
logger.error("Error: " + cl.GetLastError());
return null;
}
if ( cl.GetLastWarning() != null && cl.GetLastWarning().length() > 0 ) {
logger.error("WARNING: " + cl.GetLastWarning() + "\n");
}
totalNum = res.totalFound;
for ( int i=0; i
{
SphinxMatch info = res.matches[i];
ids.add((int) info.docId);
}
return new IdPages(totalNum,ids);
}
sphinx java_把 sphinx 官方提供的 java api 添加到 maven 库相关推荐
- java官方 jax rs_jboss7 Java API for RESTful Web Services (JAX-RS) 官方文档
原文:https://docs.jboss.org/author/display/AS7/Java+API+for+RESTful+Web+Services+(JAX-RS) Content Tuto ...
- ElasticSearch Java Api(二) -检索索引库
一.准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "git简介", "2016-06-19", &qu ...
- java打包要依赖maven库吗_maven-将依赖的 jar包一起打包到项目 jar 包中
前言: 有时候在项目开发中,需要很多依赖的 jar 包,其中依赖的 jar 包也会依赖其他的 jar 包,导致jar 包的管理很容易不全,以下有两种方法可以规避这个问题. 一.在pom.xml 文件中 ...
- AndroidOrientation Sensor(方向传感器),新的替代方法详解(安卓官方提供)
本文将带大家去解读下安卓官方关于方向传感器数据,提供的新方法.熟悉手机传感器开发的朋友对这段代码一定不会陌生吧. sm.registerListener(this, sm.getDefaultSens ...
- 【ZooKeeper Notes 3】ZooKeeper Java API 使用样例
查看PDF版本 转载请注明:@ni掌柜 nileader@gmail.com ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务框架,包含一组简单的原语集合.通过这些原语言的组合使用, ...
- Elasticsearch Java API 6.2(java client)
前言 本节描述了Elasticsearch提供的Java API,所有的Elasticsearch操作都使用客户端对象执行,所有操作本质上都是完全异步的(要么接收监听器,要么未来返回). 此外,客户端 ...
- HBase总结(十二)Java API 与HBase交互实例
HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要 [html] view plaincopy import java.io.IOExceptio ...
- HBase应用笔记:通过Java Api与HBase交互(转自 Taobao QA Team)
http://blog.sina.com.cn/s/blog_66474b1601017hvx.html http://www.cnblogs.com/eprsoft/archive/2012/10/ ...
- 通过Java Api与HBase交互(转)
HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api. import java.io.IO ...
最新文章
- JavaScript 公有 私有 静态属性和方法
- Matlab之switch-case语句
- 代码签名证书Authenticode签名伪造——PE文件的签名伪造与签名验证劫持
- vfp字符转换数值_JS数据类型转换与字面量
- java mongo分组统计_探秘 Dubbo 的度量统计基础设施 - Dubbo Metrics
- 织梦index.php源代码,PHP网站目录程序(织梦 v5.7 二次开发)
- 我的服务端JS文件合并工具
- 【C#】通过正则表达式对TextBox进行校验
- actionSupport类
- ChIP-seq 数据分析
- 如何更改微信标签名字_微信标签怎么设置?微信怎么批量设置好友标签?
- 计算机控制系统课程设计交通灯,太原理工大学数字逻辑课设(交通灯)
- ggplot2-用图层构建图像2
- 如何恢复录音删除的录音文件_电脑录音软件如何定时自动录音
- MDict中最好用的英语、汉语词典
- iOS 【GitHub README编写教程】
- 网站劫持流量是什么意思,怎么防流量被劫持?
- 有100元人民币,分别有1、2、5元三种人民币组成,其中每种人民币至少有一张,请问有多少种组合方法
- 【技术贴】超级缓存supercache3设置教程||super chache 3重启开机黑屏的解决办
- 银行交换机服务器维护,某银行客户使用第三方网管纳管华为S7706交换机后网管时断时续的问题...
热门文章
- 鸿蒙系统是不是推迟发布了,鸿蒙系统2.0来了,华为Mate40推迟发布
- mysql 编码php,php-MySQL的编码问题(和基础知识)
- Tomcat学习总结(15)—— Apache Tomcat各版本比较
- Windows学习总结(8)——DOS窗口查看历史执行过的命令的三种方式
- Java基础学习总结(73)——Java最新面试题汇总
- ethereumjs/ethereumjs-account-2-test
- 洞察CRM对企业的真正价值
- sysstat linux系统性能分析
- mybatis xml标签,批量插入
- 是什么让南浔银行动了心?“高端存储+双活”