問題タブ [dismax]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2429 参照

solr - Dismaxリクエストハンドラ

solrを使用して、名前でデータセットを検索しています(例:「Dan」または「JoeSmith」)。クエリで指定された結果(編集:最後にワイルドカードを付けて)を、別のインデックス付きフィールドdouble_score(10.0または72.3など)で指定された順序で返したいのですが。私は現在、まったく機能しない次のものを持っています:

コメントを削除すると、検索は、実行したクエリがq.altに置き換えられ、double_scoreの値によってブーストされても機能します。これがq.altを置き換えなかった場合、それは望ましい効果になります。

また、名前のトークン化など、より興味深い可能性についてはまだ掘り下げていませんが、そうする予定です。したがって、考えられる提案/解決策がそれを排除するものであってはなりません。

0 投票する
1 に答える
2675 参照

apache - Solr dismax ブースト クエリが機能しない

いくつかのビデオ タイトルを solr インデックスに保存しています。タイトルに基づいてクエリを実行しますが、スコアに影響を与える評価を取得したいと考えています。評価は、典型的な 5 つ星評価です。この評価は、動画とともに solr 内に保存されます。dismax リクエスト ハンドラを使用してみましたが、solr が値を上げていないようです。

以下に私の requestHandler を示します。

誰かが私を助けてくれることを願っています!

デバッグでクエリを実行します。これがデバッグの出力です。スコアの計算で評価フィールドが表示されません...

0.99999994 = queryWeight(title:test)、積: 4.4294653 = idf(docFreq=26876, maxDocs=829428) 0.22576088 = queryNorm 4.4294653 = (MATCH) fieldWeight(title:test in 1894)、積: 1.0 = tf(termFreq(タイトル:テスト)=1) 4.4294653 = idf(docFreq=26876, maxDocs=829428) 1.0 = fieldNorm(フィールド=タイトル, doc=1894)

その他のデバッグ情報:

0 投票する
2 に答える
34181 参照

solr - Solrでフィールドをブーストする方法

私はすでに事前にブーストを決定しています。solr インデックスに というフィールドがありますboost1。このブースト フィールドは、Google の PR ランクと同様に 1 から 10 までの値を持ちます。これは、solr で実行されるすべてのクエリに適用するブーストです。ここに私のインデックスのフィールドがあります

  • ID
  • 題名
  • 文章
  • ブースト1

ブースト フィールドはすべてのクエリに適用する必要があります。Google PRランクに似た機能を実装しようとしています。solrを使用してこれを行う方法はありますか?

0 投票する
4 に答える
5586 参照

solr - Solr Dismax handler - whitespace and special character behaviour

I've got strange results when I have special characters in my query.

Here is my request :

Parsed query :

I've got 17000 results because Solr is doing an OR (should be AND).

I have no problem when I'm using a whitespace instead of a special char :

2000 results for this query.

Here is my schema.xml (relevant parts) :

I even tried with a PatternTokenizerFactory to tokenize on whitespaces & special chars but no change...

My current workaround is to replace all special chars by whitespaces before sending query to Solr, but it is not satisfying.

EDIT : Even with a charFilter (PatternReplaceCharFilterFactory) to replace special characters by whitespace, it doesn't work...

First line of analysis via solr admin, with verbose output, for query = 'histoire-france' :

The '-' is replaced by ' ', then tokenized by WhitespaceTokenizerFactory. However I still have different number of results for 'histoire-france' and 'histoire france'.

Did i miss something ?

0 投票する
1 に答える
2926 参照

java - DismaxRequestHandler で solrj を使用するには?

適切なドキュメントがないため、SolrJ で dismaxRequestHandler を使用する方法を理解できません。

別の注意として、標準のリクエストハンドラは SolrJ の実装のデフォルトですか?

0 投票する
1 に答える
1461 参照

search - 動的フィールドを使用したSolr/Dismax

solrスキーマにいくつかのワイルドカード動的フィールドを追加しました。

<dynamicField name="*_s" type="string" indexed="true" stored="true"/>

次に、asdfasdf_sのようなフィールド名のドキュメントを追加します

このドキュメントを表示するクエリを実行すると、asdfasdf_sが設定した値で結果に保存されていることがわかります。

ただし、その動的フィールドの値で検索すると、結果が得られません。dismaxクエリパーサーを使用しています。

0 投票する
1 に答える
460 参照

java - dismax を使用して複数単語のインデックス付き用語を検索する

私のsolrスキーマは次のとおりです(重要な部分のみ):

namedentities では、「ディエゴ アルベルト ミリート」、「ディエゴ アルマンド マラドーナ」などの複数語の用語をインデックスに登録しました。両方のフィールドを検索して、dismax クエリを使用して異なる方法でブーストしようとしています。

しかし、このクエリを試してみてください: localhost:8080/solr/select/?q="diego armando maradona"&defType=dismax&qf=namedentities^100 bagofwords^1&fl=*,score&debugQuery=true&mm=0

solr は何も見つかりません。"記号の正しい使い方を理解していない可能性があります。

これもsolr wikiから与えられたのでわかりません:

「Solr 1.4以前では、基本的にはq.op=ORと等価にしたい場合はmm=0、q.op=ANDと等価にしたい場合はmm=100%に設定する必要があります。3.xとtrunkでは、 mm のデフォルト値は、q.op パラメーターによって決定されます (q.op=AND => mm=100%; q.op=OR => mm=0%). デフォルトの演算子はスキーマによって影響を受けることに注意してください。 xml エントリ。以前のバージョンの Solr では、デフォルト値は 100% です (すべての句が一致する必要があります)"

私のスキーマでは、defaultOperator が OR であることを考えると、mm=0 を設定せずに、デフォルトの mm 値 100 を取得します。

前もって感謝します!

0 投票する
1 に答える
173 参照

solr - bfでアクセントをより正確にし、solrでクエリを実行するにはどうすればよいですか

私はsolrを使用していますが、結果の精度の問題を修正できません(アクセントを考慮したq vs bf)

私は2つのフィールドがインデックス化されたsolrインデックスを持っています(これは単純化されています):

クエリを実行したとき:q=Fé&qf=town town_ascii&bf=population^2&defType=dismax 結果でこの順序を使用したい : Félines > Ferrand.

クエリを実行するとき:q=Fe&qf=town town_ascii&bf=population^2&defType=dismax結果でこの順序を希望します:Ferrand > Félines

問題は、Ferran のほうが人口が多いため、Félines のたびに勝つことです。どうすれば解決できますか? クエリのスコアを使用して、それを使用してbf人口のバランスをとる方法が見つかりませんでした

0 投票する
2 に答える
1189 参照

solr - Dismaxの使用中にSolrが計算された距離を取得する

自分がやりたいことは不可能だと思い始めていますが、これを試してみようと思いました。

Solr 3.5 を実行しています。

現在、次の 2 種類の検索があります。

  1. スコア フィールド内の 2 点間の計算された距離を返す基本的な空間クエリ。

Solr ログからのサンプル クエリ:

  1. 多数のフィールドでフリー テキスト クエリを許可する dismax クエリ。

Solr ログからのクエリの例:

最初のクエリを dismax クエリに置き換えたいのですが、応答で計算された距離を取得する必要があります。はい、プログラムで距離を計算できますが、Solr が既に行っているので、これを行う必要はありません。

dismax クエリを「関連性」、距離、またはその他のフィールドでソートできるようにしたいので、ブーストによって与えられたスコアはソートに興味深いものになる可能性がありますが、返される必要はありません。

0 投票する
1 に答える
921 参照

solr - SolrExtendedDisMaxクエリパーサーを使用したフィールド検索

プレーンでないクエリ内にフィールド化された検索を含むクエリでSolrExtendedDisMaxクエリパーサーを使用する際に問題が発生しました。

ケースは次のとおりです。

パラメータを使用してedismaxリクエスト(defType = edismax)をSOLRに送信すると

  1. qf = field1 ^ 10
  2. q = field2:ciao
  3. debugQuery = on(デバッグ目的)

solrは私が期待するようにクエリを解析します。実際、応答のデバッグ部分は次のように指示します。

しかし、条件を角かっこで囲むように、式を少しだけ複雑にすると、次のようになります。1. qf = field1 ^ 10 2. q =(field2:ciao)

ここで、Solrはフィールド構文を認識していないようです。

私はドキュメントでこの振る舞いについての言及を見つけませんでした、代わりに彼らはそれを言います

このパーサーは、ブール演算子'AND'、'OR'、'NOT'、'+'、および'-'、フィールド検索、用語ブースト、ファジーを含む完全なLuceneQueryParser構文をサポートします。

edismaxパーサーを使用しても、強制ブール値とフィールド化されたクエリを実行したいので、この問題は本当に厄介です。

これを回避する方法を知っていますか?

編集:Solrのバージョンは3.6です