0
我有720个狮身人面像索引,大小为1.21 GB。这里附上了所有索引和一项服务。它需要800MB的RAM。我已经使用sql_attr_str2ordinal来存储字符串,所以RAM减少了,现在只需要17MB。但这里的问题是搜索结果给0匹配。搜索是从sphinx索引使用java api应用。 的conf文件和Java代码如下:狮身人面像搜索结果给出0个匹配项
searchd{
listen = 516
log = D:\programs\spinx\spinxexperiment\project\log\searchd.log
query_log = D:\programs\spinx\spinxexperiment\project\log\query.log
read_timeout = 5
max_children = 30
pid_file = D:\programs\spinx\spinxexperiment\project\log\searchd.pid
max_matches = 1000
seamless_rotate = 0
preopen_indexes = 0
unlink_old = 1
ondisk_dict_default = 1
mva_updates_pool = 1M
workers = threads # for RT to work}
source webusagedatagroup20120301{
type = pgsql
sql_host = 127.0.0.1
sql_user = postgres
sql_pass =
sql_db = iviewdb
sql_port = 5432
sql_query = SELECT id,username as username_ord,domain as domain_ord,application,hits,bytes from webusagedata1
sql_attr_str2ordinal = username_ord
sql_attr_str2ordinal = domain_ord
sql_attr_str2ordinal = application
sql_attr_bigint = hits
sql_attr_bigint = bytes}
index webusagedatagroup20120301{
source = webusagedatagroup20120301
path = D:\programs\spinx\spinxexperiment\project\data\20120301\group\webusagedatagroup20120301
preopen = 0
docinfo = inline
ondisk_dict = 1
charset_type = sbcs
rt_field = username
rt_field = domain
rt_field = application
rt_attr_bigint = hits
rt_attr_bigint = bytes}
代码:
client = new SphinxClient("127.0.0.1",516);
client.SetMatchMode(SphinxClient.SPH_MATCH_PHRASE);
query=prepareQuery();
client.SetLimits(0, 20);
client.SetMaxQueryTime(0);
client.SetConnectTimeout(60000);
client.SetSelect("*, SUM(bytes) as bytes_total");
client.SetGroupBy("application", SphinxClient.SPH_GROUPBY_ATTR,"username asc");
SphinxResult res = client.Query("divyesh.modi", "webusagedatagroup20120130");
当我使用sql_field_string它会在创建索引时产生错误,因为我已经使用docinfo作为'inline'。 –
那么不要使用sql_field_string!你已经决定不使用我认为的字符串属性。 – barryhunter