我有两个独立的实体,项目和用户彼此无关。
由于复杂的连接等,我选择使用xmlpipe2数据源而不是mysql。
我希望用户能够同时搜索用户和项目。
我的项目xml来源:
<sphinx:document id="1">
<title>Project 1</title>
<details>some details bob</details>
</sphinx:document>
<sphinx:document id="2">
<title>Project 2</title>
<details>some more details bob</details>
</sphinx:document>
...etc...
我的用户xml来源:
<sphinx:document id="1">
<name>Bob Smith</name>
<age>16</age>
</sphinx:document>
<sphinx:document id="2">
<name>Dorathy Melton</name>
<age>22</age>
</sphinx:document>
...etc...
我有两个单独的项目和用户索引
现在在我的php代码中,如何同时搜索两个索引,比如
$s = new SphinxClient();
$res = $s->Query('bob', "projects users");
我希望项目和用户可以进行一些匹配,但是它只搜索一个索引,因为两个索引的ID都相同。
我的备份解决方案,听起来不对 1.尝试将两组数据连接在一起并具有1个索引 2.我运行两个单独的查询
$res = $s->Query('bob', "projects");
$res = $s->Query('bob', "users");
答案 0 :(得分:1)
你可以抵消你的孩子,所以他们不会“碰撞”,例如
项目中<sphinx:document id="200002">
在一个索引中,和
用户<sphinx:document id="300002">
。即只需为索引中的所有ID添加固定偏移量。