0

不動産ポータルの場合、エージェントは、特定の日に現れたオープンハウスのゲストの数を記録します。私はsphinxapiを使用して、「open_house_guest_info」というスフィンクスインデックスで最も訪問数の多い家をフィルタリングし、検索語を使用して、家のイントロ「houses」を持つ別のスフィンクスインデックスでそれらの家IDを検索しようとしています。

「open_house_guest_info」インデックス:
日付、house_id、guest_count

「家」インデックス:
house_id、house_intro

MySQLでこれを行う方法は知っていますが、Sphinxでこれを実行しようとしています。「house_id」に関連付けられた別のインデックスからフィルタリングされた属性に基づいて、別のインデックスのテキストを検索するにはどうすればよいですか?

4

1 に答える 1

1

Sphinxは「JOIN」のインデックスを作成できません。すべてのデータを1つのインデックスに入れる必要があります。

インデックスを作成するsql_queryには、JOIN、GROUPBYなどを含めることができます。単一のインデックスを作成するためにmysqlによって実行されます。

sql_query = SELECT g.id,house_id,house_intro,REPLACE(date,'-','') as date,COUNT(g.id) AS guests FROM houses h INNER JOIN open_house_guest_info g USING (house_id) GROUP BY date,house_id

sql_attr_uint = house_id
sql_attr_uint = date
sql_attr_uint = guests

次に、日付、house_id、またはゲストでフィルタリング/グループ化/並べ替えることができます:)[スフィンクスクエリで]

于 2012-09-12T11:19:31.790 に答える