发表回复 
 
主题评价:
  • 0 次(票) - 平均星级: 0
  • 1
  • 2
  • 3
  • 4
  • 5
按字段搜索排序
2013年06月07日, 13:03 (这个帖子最后修改于: 2013年06月07日 13:08 by hpxl.)
按字段搜索排序
ini文件里面某个字段设置如下:
PHP 代码:
[example_attr]
index self
tokenizer 
split(,) 


按这个字段搜索,example_attr:jianyue,baise
得到结果如下:
PHP 代码:
45 ... jianyue,baise,qianhuang
207 
... zhongshi,hongse,baise
39 
... jianyue,baise,huangse
41 
... jianyue,heise,baise
43 
... heise,baise
48 
... xingudian,heise,baise
47 
... jianyue,hongse,baise
52 
... jianyue,hongse,heise,baise
53 
... jianyue,heise,baise
55 
... oumei,baise,zongse 

希望实现下面的结果,同时包含jianyue,baise的排在前面。这条语句example_attr:jianyue AND example_attr:baise可以得到想要的结果,结果如下:
PHP 代码:
47 ... jianyue,hongse,baise
52 
... jianyue,hongse,heise,baise
75 
... jianyue,hongse,baise,qianhuang
132 
... jianyue,hongse,baise,qianhuang 

如果字段的属性太多,AND查询语句会比较长。该怎么优化呢?

Hello world!
查找这个用户的全部帖子
引用并回复
2013年06月07日, 13:23
RE: 按字段搜索排序
INI加上 non_bool =yes
然后搜索
example_attr:jianyue,baise
即可
查找这个用户的全部帖子
引用并回复
2013年06月07日, 14:22 (这个帖子最后修改于: 2013年06月07日 14:25 by hpxl.)
RE: 按字段搜索排序
ini设置
PHP 代码:
[example_attr]
index self
tokenizer 
split(,)
non_bool yes 

XS版本
xs-indexd: xunsearch/1.4.7-dev (index server)

查询结果没有任何变化,结果如下:
PHP 代码:
example_attr:jianyue,baise
45 
... jianyue,baise,qianhuang
207 
... zhongshi,hongse,baise
39 
... jianyue,baise,huangse
41 
... jianyue,heise,baise
43 
... heise,baise
48 
... xingudian,heise,baise
47 
... jianyue,hongse,baise
52 
... jianyue,hongse,heise,baise
53 
... jianyue,heise,baise
55 
... oumei,baise,zongse 

Hello world!
查找这个用户的全部帖子
引用并回复
2013年06月08日, 10:18 (这个帖子最后修改于: 2013年06月08日 10:30 by hpxl.)
灯泡 RE: 按字段搜索排序
ini文件里面cid字段设置
PHP 代码:
[cid]
index self
tokenizer 
split(,)
non_bool yes 

按cid:1或者cid:你好,平安,是可以搜到数据的,cid:hello,英文的搜不到任何数据,下面是部分数据。
PHP 代码:
bash-3.2php sdk/php/util/Quest.php example cid:你好
在 3 条数据中,大约有 3 条包含 cid
:你好 ,第 1-3 条,用时:0.0025 秒。

1. 你好啊,hello world 
#3# [100%,0.07]

Cid:你好,hello,world,健康  Example_attr:1,2,3

2. 你好啊,hello world 
#1# [99%,0.07]

Cid:你好,hello,world,平安,健康  Example_attr:1,2,3

3. 你好啊,hello world 
#5# [98%,0.07]

Cid:你好,hello,world,平安,健康,1,2,3  Example_attr:1,2,3

bash
-3.2php sdk/php/util/Quest.php example cid:hello
在 3 条数据中,大约有 0 条包含 cid
:hello ,第 0-0 条,用时:0.0011 秒。 

Hello world!
查找这个用户的全部帖子
引用并回复
2013年06月08日, 11:34
RE: 按字段搜索排序
--show-query 看吧
查找这个用户的全部帖子
引用并回复
2013年06月08日, 13:14 (这个帖子最后修改于: 2013年06月08日 13:24 by hpxl.)
RE: 按字段搜索排序
开发版:1.4.6-27已解决此问题。现在可以通过cid:hello,world来查询了。字段里面non_bool=yes,可以使同时包含hello和world的排在前面。介绍3条​语句例子,第一条语句包含hello,world的模糊搜索,结果是包含hello,world的排在前面,且只包含hello或者world的也可以搜到,第二条语句只​搜索包含hello,world的,结果只包含hello,world。 第三条和第二条结果一样。
此搜索语句可以用于查询商品属性非常方便,结贴了。

PHP 代码:
$search $xs->search->setFuzzy();
1.$docs $search->setQuery('cid:hello,world')->search();
2.$docs $search->addQueryTerm('cid''hello')->addQueryTerm('cid''world')->search();
3.$docs $xs->search->setQuery('cid:hello,world')->search(); 

Hello world!
查找这个用户的全部帖子
引用并回复
发表回复 


论坛跳转:


正在浏览该主题的用户: 1 个游客