如果客户端和服务器版本不一致可能会出现如下错误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 库相关推荐

  1. 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 ...

  2. ElasticSearch Java Api(二) -检索索引库

    一.准备数据 String data1 = JsonUtil.model2Json(new Blog(1, "git简介", "2016-06-19", &qu ...

  3. java打包要依赖maven库吗_maven-将依赖的 jar包一起打包到项目 jar 包中

    前言: 有时候在项目开发中,需要很多依赖的 jar 包,其中依赖的 jar 包也会依赖其他的 jar 包,导致jar 包的管理很容易不全,以下有两种方法可以规避这个问题. 一.在pom.xml 文件中 ...

  4. AndroidOrientation Sensor(方向传感器),新的替代方法详解(安卓官方提供)

    本文将带大家去解读下安卓官方关于方向传感器数据,提供的新方法.熟悉手机传感器开发的朋友对这段代码一定不会陌生吧. sm.registerListener(this, sm.getDefaultSens ...

  5. 【ZooKeeper Notes 3】ZooKeeper Java API 使用样例

    查看PDF版本 转载请注明:@ni掌柜 nileader@gmail.com ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务框架,包含一组简单的原语集合.通过这些原语言的组合使用, ...

  6. Elasticsearch Java API 6.2(java client)

    前言 本节描述了Elasticsearch提供的Java API,所有的Elasticsearch操作都使用客户端对象执行,所有操作本质上都是完全异步的(要么接收监听器,要么未来返回). 此外,客户端 ...

  7. HBase总结(十二)Java API 与HBase交互实例

    HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要 [html] view plaincopy import java.io.IOExceptio ...

  8. HBase应用笔记:通过Java Api与HBase交互(转自 Taobao QA Team)

    http://blog.sina.com.cn/s/blog_66474b1601017hvx.html http://www.cnblogs.com/eprsoft/archive/2012/10/ ...

  9. 通过Java Api与HBase交互(转)

    HBase提供了Java Api的访问接口,掌握这个就跟Java应用使用RDBMS时需要JDBC一样重要,本文将继续前两篇文章中blog表的示例,介绍常用的Api. import java.io.IO ...

最新文章

  1. JavaScript 公有 私有 静态属性和方法
  2. Matlab之switch-case语句
  3. 代码签名证书Authenticode签名伪造——PE文件的签名伪造与签名验证劫持
  4. vfp字符转换数值_JS数据类型转换与字面量
  5. java mongo分组统计_探秘 Dubbo 的度量统计基础设施 - Dubbo Metrics
  6. 织梦index.php源代码,PHP网站目录程序(织梦 v5.7 二次开发)
  7. 我的服务端JS文件合并工具
  8. 【C#】通过正则表达式对TextBox进行校验
  9. actionSupport类
  10. ChIP-seq 数据分析
  11. 如何更改微信标签名字_微信标签怎么设置?微信怎么批量设置好友标签?
  12. 计算机控制系统课程设计交通灯,太原理工大学数字逻辑课设(交通灯)
  13. ggplot2-用图层构建图像2
  14. 如何恢复录音删除的录音文件_电脑录音软件如何定时自动录音
  15. MDict中最好用的英语、汉语词典
  16. iOS 【GitHub README编写教程】
  17. 网站劫持流量是什么意思,怎么防流量被劫持?
  18. 有100元人民币,分别有1、2、5元三种人民币组成,其中每种人民币至少有一张,请问有多少种组合方法
  19. 【技术贴】超级缓存supercache3设置教程||super chache 3重启开机黑屏的解决办
  20. 银行交换机服务器维护,某银行客户使用第三方网管纳管华为S7706交换机后网管时断时续的问题...

热门文章

  1. 鸿蒙系统是不是推迟发布了,鸿蒙系统2.0来了,华为Mate40推迟发布
  2. mysql 编码php,php-MySQL的编码问题(和基础知识)
  3. Tomcat学习总结(15)—— Apache Tomcat各版本比较
  4. Windows学习总结(8)——DOS窗口查看历史执行过的命令的三种方式
  5. Java基础学习总结(73)——Java最新面试题汇总
  6. ethereumjs/ethereumjs-account-2-test
  7. 洞察CRM对企业的真正价值
  8. sysstat linux系统性能分析
  9. mybatis xml标签,批量插入
  10. 是什么让南浔银行动了心?“高端存储+双活”