SOLRで何をしているのかわからないので、これまでのところ単純なことをすることで得られ、SQLで結合することで得られました。
buysellitems
次のようなフィールドがたくさんあるテーブルがあります
+-----------+-------+-------------------+
| buysellid | price | buysellname |
+-----------+-------+-------------------+
| 3558 | 140 | Multi Layer |
| 3561 | 175 | form |
| 3562 | 160 | Floral |
| 3563 | 199 | Specks |
| 3564 | 385 | Ruby Red |
| 3565 | 160 | B&W |
| 3567 | 175 | Pattern |
| 3569 | 125 | Fairy Floss Tunic |
| 3570 | 185 | Brandy Dress |
| 3571 | 85 | Anissa |
+-----------+-------+-------------------+
だから私は次のようなものを持っています
<entity name="item" id="BuySellID" query="SELECT
i.BuySellID, i.BuySellName, i.Price, ...">
<field name="buysellid" column="buysellid" />
<field name="BuySellName" column="BuySellName" />
<field name="price" column="price" />
...
</entity>
そのため、商品を名前で簡単に検索したり、価格でフィルタリングしたりできます。しかし、ユーザーは、buysellitemfeatures
次のようなテーブルで商品のタグを指定することもできます。
+-----------+-------------+--------------+
| buysellid | featurename | featurevalue |
+-----------+-------------+--------------+
| 3860 | color | red |
| 3860 | color | white |
| 3861 | tag | leather |
| 3861 | tag | natural |
| 3861 | color | black |
| 3861 | color | pink |
| 3862 | tag | clothing |
| 3862 | color | black |
| 3862 | color | pink |
| 3863 | color | black |
| 3863 | color | pink |
| 3872 | color | black |
| 3872 | color | white |
| 3873 | color | black |
| 3873 | color | white |
| 3874 | color | black |
| 3874 | color | white |
+-----------+-------------+--------------+
検索結果 (アイテム) をフィルタリングして、名前に見つからなくてもタグ テーブルに「レザー」が含まれるアイテムを表示するにはどうすればよいですか? 各アイテムにはいくつかの列があることに注意してください。色でもフィルタリングしたいと思います。
データをインポートする方法と、次のようなクエリを実行する方法:
- このタグが付いているか、名前に含まれているレザーとディスプレイのアイテムを検索します
- 同じものを検索しますが、色は黒でフィルターします (アイテムにはいくつかの目立つ色がある場合もあります)。
ご協力ありがとうございました。