4

1つのフィールドに長さの異なる複数のスニペットをリクエストする方法を見つけようとしています。これは、2つの個別のクエリを発行するか、フィールドを複製することで実現できることはわかっていますが、クエリの負荷またはインデックスサイズが2倍になることは避けたいと思います。また、カスタムスニペットジェネレーターを作成することに頼りたくありません。

私はSolr4.0を使用していますが、おそらく新しいフィールドエイリアシング機能が理想的なソリューションになると思いました。ただし、強調表示コンポーネントはこの新しい構文を理解していないようです。たとえば、次のリクエストは、理想的には2つの強調表示されたスニペットを返します。短いスニペットと完全なフィールドです。

http://localhost:8983/solr/select?defType=edismax&q=foo&qf=content&fl=id&hl=true&hl.fl=content,snip:content&f.content.hl.fragsize=50000&f.snip.hl.fragsize=200&wt=json&indent=true

これにより、次のようになります。

"highlighting":{
"12345":{
  "content":{
    "snippet":["<em>foo</em> bar baz"]},
  "snip:content":{
    "snippet":null}},

これから、蛍光ペンが「snip:content」という名前のフィールドを探して失敗することがわかりました。fl、qf、f.myalias.qfパラメータで指定されたフィールドエイリアスを使用していくつかのバリエーションを試しましたが、役に立ちませんでした。JIRAの問題、パッチ、ソースコードを調べてきましたが、適切な構文を決定できません。

誰かがこれについてどうやって行くかについてのアイデアを持っていますか?

4

1 に答える 1

2

hl.snippetsで確認できます:-

フィールドごとに生成する強調表示されたスニペットの最大数。注: ゼロからこの値までの任意の数のスニペットが生成される可能性があります。このパラメーターは、フィールドごとのオーバーライドを受け入れます。

デフォルト値は「1」です。

于 2012-11-01T17:49:49.940 に答える