0

我是sphinx新手,遇到了一些问题:

$1max_matches = 200csft.conf 中的类 searchd 中设置后,我调用了

org.sphx.api.test.main(new String[]{"-h", "127.0.0.1","-i", "magnet","-p", "9312", "-l", "100", "keyword"});

在 java main 方法中。返回的错误是

错误:searchd 错误:per-query max_matches=1000 out of bounds (per-server max_matches=200)

正如你所看到的,我已经添加了参数:-l = 100,我还应该设置什么来防止 Java 中的这个错误?

$2我想用来sortMode = SphinxClient.SPH_SORT_TIME_SEGMENTS让搜索结果按时间降序排序。我的属性在 csft.conf 中是这样写的:

sql_attr_timestamp=UNIX_TIMESTAMP( upload_time) as dt

谁能告诉我如何在 Java 代码中设置属性?我尝试sortClause在java中设置String,但它总是说Attribute XXX has not found

$3我想知道SphinxClient在 Java 中是否是线程安全的,因为我不喜欢每次有人查询时都创建一个 SphinxClient 实例。

提前致谢!

4

1 回答 1

1
  1. 如果您使用的类是https://code.google.com/p/sphinxtools/source/browse/trunk/src/org/sphx/test/test.java?r=2 那么该函数甚至不会检查 'argv '。它对所有变量进行硬编码。没有作为第三个参数传递给 setLimits
  2. sql_attr_timestamp只接受一个列名,没有函数或任何东西。函数调用必须在 mainsql_query
  3. 我的java很生锈,但不得不说不。它将各种状态存储在私有变量中。同时使用客户端的多个线程将破坏它们。
于 2013-11-04T19:53:13.413 回答