java - sphinx for Java API的一些问题

标签 java sphinx

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

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

org.sphx.api.test.main(new String[]{"-h", "127.0.0.1","-i", "磁铁","-p", "9312", “-l”、“100”、“关键字”});

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

错误:searchd 错误:每个查询 max_matches=1000 超出范围(每个服务器 max_matches=200)

如您所见,我添加了参数:-l = 100,我还应该设置什么来防止 Java 中出现此错误?

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

sql_attr_timestamp=UNIX_TIMESTAMP(upload_time) 作为 dt

谁能告诉我如何在 Java 代码中设置该属性?我尝试在java中设置sortClause字符串,但它总是说尚未找到属性XXX

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

提前致谢!

最佳答案

  1. 如果您使用的类是 https://code.google.com/p/sphinxtools/source/browse/trunk/src/org/sphx/test/test.java?r=2 那么该函数甚至不会检查“argv”。它对所有变量进行硬编码。没有任何内容作为第三个参数传递给 setLimits
  2. sql_attr_timestamp 仅接受列名,不接受函数或任何内容。函数调用必须位于主sql_query
  3. 我的java很生疏,但不得不说不。它将所有类型的状态存储在私有(private)变量中。多个线程同时使用客户端将会破坏它们。

关于java - sphinx for Java API的一些问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19762187/

相关文章:

mysql sphinx 生成唯一id

search - Sphinx 可以配置为赋予某些字段更多权重吗?

c# - 如何构建推荐/相似度引擎

java - 无法在 JOOQ 中设置引用麦粒肿 (RenderNameStyle.QUOTED)

php - 警告 : duplicate document ids found in sphinx

java - 构建一个帖子请求希望希伯来语数据

java - 为什么 getScaledInstance() 不起作用?

mysql - Lucene、Sphinx(或任何其他引擎)可以索引二进制数据吗?

java - 如何在Tapestry tml中进行计算?

c# - C# 中的泛型类型与 Java 中的一样吗?