Php 属性集合中的Sphinx搜索
在属性集合中是否有一种在Sphinx中搜索的方法 我有一个财产(如在建筑物中,而不是属性),在其他属性中,有一个设施集合,例如游泳池、wifiPhp 属性集合中的Sphinx搜索,php,sphinx,Php,Sphinx,在属性集合中是否有一种在Sphinx中搜索的方法 我有一个财产(如在建筑物中,而不是属性),在其他属性中,有一个设施集合,例如游泳池、wifi 每个属性都有多个功能如果您想知道,您必须使用“multi”属性,请参阅随附的xmlpipe2 doc+php搜索示例 <?xml version="1.0" encoding="UTF-8"?> <sphinx:docset> <sphinx:schema> <sphinx:field name="capa
每个属性都有多个功能如果您想知道,您必须使用“multi”属性,请参阅随附的xmlpipe2 doc+php搜索示例
<?xml version="1.0" encoding="UTF-8"?>
<sphinx:docset>
<sphinx:schema>
<sphinx:field name="capacity"/>
<sphinx:field name="region"/>
<sphinx:field name="facilities"/>
<sphinx:attr name="capacity" type="int"/>
<sphinx:attr name="region" type="int"/>
<sphinx:attr name="facilities" type="multi"/>
</sphinx:schema>
<sphinx:document id="94">
<capacity>37</capacity>
<region>12</region>
<facilities>
<attr>23</attr>
<attr>5</attr>
<attr>2</attr>
<attr>1</attr>
</facilities>
</sphinx:document>
</sphinx:docset>
对于这种情况,最好使用 在应用程序中:
$cl->SetFilter('facilities', array(1, 2, 3));
$cl->Query();
$cl->Query("@facilities pool");
但是,可以避免使用MVA属性。只需在SQL查询中对每个工具进行简单的查询:
sql_query = select group_concat(facilities SEPARATOR ' ') as facilties \
from building b inner join facilities f on (b.facility_id = f.id)
在应用程序中:
$cl->SetFilter('facilities', array(1, 2, 3));
$cl->Query();
$cl->Query("@facilities pool");
在我的例子中,将MVA属性声明为:
<facilities>
<attr>23</attr>
<attr>5</attr>
<attr>2</attr>
<attr>1</attr>
</facilities>
23
5.
2.
1.
没用。但当我把它做成这样:
<facilities>23,5,2,1</facilities>
23,5,2,1
…它起作用了!;)
(斯芬克斯2.0.6-id64-release(r3473))