Solr スキーマの設計に関していくつか質問があります。基本的に私は製品カタログ Web サイトの検索エンジンをセットアップしており、テーブルの関係は次のとおりです。
Product
属するMerchant
Product
属するBrand
Product
多くのものを持ち、多くのものに属しているCategories
Category
多くを持っていますSub Categories
Sub Category
多くを持っていますTypes
Type
多くを持っていますSub Types
これまでのところ、私の Schema.xml は次のようになっています。
<field name="product_id" type="string" indexed="true" stored="true" required="true" />
<field name="name" type="string" indexed="true" stored="true"/>
<field name="merchant" type="string" indexed="true" stored="true"/>
<field name="merchant_id" type="string" indexed="true" stored="true"/>
<field name="brand" type="string" indexed="true" stored="true"/>
<field name="brand_id" type="string" indexed="true" stored="true"/>
<field name="categories" type="string" multiValued="true" indexed="true" stored="true"/>
<field name="sub_categories" type="string" multiValued="true" indexed="true" stored="true"/>
<field name="types" type="string" multiValued="true" indexed="true" stored="true"/>
<field name="sub_types" type="string" multiValued="true" indexed="true" stored="true"/>
<field name="price" type="float" indexed="true" stored="true"/>
<field name="description" type="text" indexed="true" stored="true"/>
<field name="image" type="text" indexed="true" stored="true"/>
<field name="text" type="text" indexed="true" stored="false" multiValued="true"/>
<uniqueKey>product_id</uniqueKey>
<defaultSearchField>text</defaultSearchField>
<solrQueryParser defaultOperator="OR"/>
<copyField source="name" dest="text"/>
<copyField source="merchant" dest="text"/>
<copyField source="brand" dest="text"/>
<copyField source="categories" dest="text"/>
<copyField source="sub_categories" dest="text"/>
<copyField source="types" dest="text"/>
<copyField source="sub_types" dest="text"/>
だから私の質問は今:
1) スキーマは正しいですか?
2) の商品を探す必要があるとしましょうCategory XYZ
。私の上級プログラマーは、 を使用して solr を照会するのが好きではCategory Name
なく、代わりに を使用したくありませんCategoryID
。彼は保存することを提案して CategoryID_CategoryName (1001_Category XYZ)
おり、Web フロントから ID を送信しています。(空白を含む名前が正しく機能しないと仮定します)。
したがって、製品を見つけるには、部分一致をcategories
行い、文字列からカテゴリ ID を特定する(fetch 1001 from 1001_Category XYZ)
必要がcategories
ありますcategory_ids
。それは私にとってより良い選択肢のようです。
また
一緒に保存するSolr多値フィールドタイプはありCategoryID
ますCategoryName
か?
あなたの考えを教えてください、ありがとう。