1

現在、solr ベースの検索アプリケーションに取り組んでいます。

たとえば、2 つの多値フィールドがあります。データはデータベースから読み取られます。

<int name="id">1</int>
<arr name="type">
<str>Marke</str>
<str>Modell</str>
<str>Fahrzeugtyp</str>
<str>engine</str>
</arr>
<arr name="value">
<str>Volkswagen</str>
<str>Golf</str>
<str>Golf TDI</str>
<str>V-Engine</str>

現在の solr 構成では、これら 2 つの多値フィールド間に関係はありません。「マルケ=フォルクスワーゲン」と言えるように。

さらに、フォルクスワーゲンとゴルフの間には関係がなければなりません。そのため、2 つの多値フィールドと、多値フィールド自体の値から分類法を構築する必要があります。

typeAhead をビルドしようとしました。フォルクスワーゲンを検索したときの現在の構成では、フォルクスワーゲン モデルを参照していないアウディとエンジン 2 が候補に含まれています。solr url:

http://xyz:8983/solr/suggest?&wt=json&facet=true&q= *&facet.field=value&facet.prefix=Volkswagen 複数の連結フィールドでの Solrファセットには何か関係があると思いますが、できます

。私の問題に合わせて調整してください。

返信ありがとう


TemplateTransformer を使用して値と型を組み合わせることができますか?


TemplateTransformer を使用すると、次の結果が得られます。フォルクスワーゲン

私のdata-import.xml(DIH)で

<entity> name="tablename" transformer="TemplateTransformer">
<field column="test"  template="${tablename.TYPE} | tablename.VALUE}"/>
...
</entity>

4

1 に答える 1

4

この問題を解決してから長い時間が経ちました。データ入力ハンドラでこのスクリプトを使用してみてください。注意 - このスクリプトは solr 3.6 に基づいています。

 <script>
       <![CDATA[ function f1(row) 
         {
          var eldName = row.get('TYPE');
          row.put(eldName, row.get('VALUE'));
          return row;
         }
       ]]>
 </script>

 <entity name="e" transformer="script:f1" query="select TYPE, VALUE from X"></entity>
于 2014-07-25T10:43:16.430 に答える