0

drupalでapachesolrモジュールを使用しています
カスタムファセットフィールドサブジェクトを作成しましたが、drupalファセットブロックでは、文が複数の行/結果
に分割されています。たとえば、サブジェクト分析化学は次のようになります。
<int name="analyt">1</int>
<int name="chemistri">1</int>

私はテーブルjournal、subject、subject_journal、articleを
持っています私のデータ設定ファイルにはエンティティがあります

<entity name="subject" pk="id"
                    query="select s.id, s.title from subject s
                            join subject_journal sj on sj.subject_id = s.id
                            join article a on a.journal_id = sj.journal_id
                            where sj.journal_id = '${article.journal_id}' 
                            group by s.id, s.title">
                    <field column="id" name="subject_id" /> 
                    <field column="title" name="subject" />                         
        </entity>

助けてください
ありがとう

4

1 に答える 1

1

ファセットフィールドで分析を実行しているようです。

一般的なファセットフィールドの詳細-

ファセットフィールドは、人間が読めるテキストとドリルダウンクエリ値の2つの目的を果たすために指定されることが多く、検索や並べ替えに使用されるフィールドとは異なるインデックスが付けられることがよくあります。

多くの場合、個別の単語にトークン化されません。小文字にマッピングされないことがよくあります。人間が読める句読点は削除されないことがよくあります(二重引用符を除く)。保存された値はインデックス付きの値によく似ているため、保存する必要はありません。ファセットメカニズムは、値の取得に使用されます。

ファセットフィールドの個別のコピーを維持し、分析を実行せず、それをファセットフィールドとして使用する必要があります。

<field name="subject" type="text_general" indexed="true" stored="true" multiValued="true"/>
<!-- Maintain different facet field -->
<field name="subject_facet" type="string" indexed="true" stored="true" multiValued="true"/>

<!-- copy field -->
<copyField source="subject" dest="subject_facet"/>
于 2011-10-12T11:21:33.900 に答える