問題タブ [morelikethis]

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 投票する
0 に答える
624 参照

c# - Lucene (.net) morelike this 検索で完全なドキュメントと特定のフィールドを検索するにはどうすればよいですか?

テキスト ファイルに 100 社の企業をリストしたドキュメントがあります。ルセンで索引付けされています。それ自体は保存されませんが、ベクトルは保存されます。リストの 1 社は Apple Inc. と呼ばれています。

「Apple Inc」というタイトルの別のドキュメントが lucene に保存されています。

以下のコードを使用して、このような検索をうまく実行できました。Lucene でドキュメントを見つけることができ、タイトル フィールドとコンテンツ フィールドの両方で検索を実行して、同様のドキュメントを見つけることができます。

私の質問は、このコードを変更して、タイトルにこの内容を含む他のドキュメントを見つけることができるようにするにはどうすればよいかということです。つまり、Apple というタイトルのドキュメントを表示するにはどうすればよいですか。

選択したドキュメントのコンテンツと特定のフィールド (タイトルなど) を検索したいと考えています。

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

apache - Solr: MoreLikeThis (MLT) ハンドラに距離を組み込む

SOLR を使用してレコメンダーを作成し、タイトルというテキスト フィールドに一致させようとしています。(タイトル フィールドのドキュメントの類似性)/(ポイントからの地理空間距離) に基づいて一致を返すようにしたい。そのため、推奨事項では、テキストの類似性と、照合対象のドキュメントからの地理空間距離の両方を考慮に入れる必要があり、類似していて地理的に近いドキュメントが優先されます。mlt.fl および mlt.qf ハンドラーを使用してこれを実行しようとしました。

ただし、これは機能しません。距離は完全に無視されているようです。これを達成する方法はありますか?または、推奨ドキュメントを生成する代わりにクエリを作成する必要がありますか?

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

lucene - MoreLikeThis は、同じドキュメントを相互に比較すると、Lucene.Net で 100% のスコア率を返さない

Lucene.net を正しく呼び出しているかどうかわかりません。ドキュメントをそれ自体と比較するために MoreLikeThis 関数を呼び出そうとしていますが、スコアが 0.3174651 しか得られませんが、スコアは 1.0 になるはずです。私は間違った期待を期待していますか?

これは私のコードです:

私は何か間違ったことをしていますか?

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

java - Lucene の retrieveTerms を機能させるにはどうすればよいですか?

http://svn.apache.org/repos/asf/lucene/dev/trunk/lucene/queries/src/java/org/apache/lucene/queries/mlt/MoreLikeThisの retrieveTerms メソッドを活用しようとしています。 javaで、次の行で NullPointerException が発生しています

なぜこれが起こっているのか正確にはわからないので、どんな説明でも素晴らしいでしょう。わかりやすくするために、メソッド全体と以前の ir の宣言を以下に掲載します。

}

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

java - Lucene の MoreLikeThis をどのように動的にフィルタリングしますか?

では、私が行ったことを説明してみましょう。そうすれば、私が求めていることがより明確になることを願っています。私はドキュメントを分析し、インデックス全体では珍しいにもかかわらず、一部のドキュメントで頻繁に出てくる単語に基づいてスコアを付けようとしています。これまでのところ、かなり興味深い結果がいくつか得られており、特定のドキュメントの各用語の tf と idf を確認できます。

ドキュメント全体にスコアを付けるために、tf-idf 関連の何かをしたいのですが、ドキュメント内のすべての用語を使用したくありません。現在、私はいくつかのフィルターをハードコードして、過度に一般的な単語 (idf が低すぎて私にとって重要ではない単語) と、過度に一般的でない単語 (idf スコアが非常に高い単語。私の経験では、通常はタイプミスです) を取り除きました。

IDF の外れ値を動的に除外する良い方法はありますか?
それ以外の:

私は次のようなことをしたい:

それが最善の方法かもしれませんが、他に考えられる解決策があれば教えてください。よろしくお願いします。

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

solr - このようなものでは、期待される結果が得られません

同様の顧客を見つけるために、このハンドラーに似たsolrを実装しています。

同じ住所に住んでいる名前の異なる 2 人の顧客がいます。entity_id を solr に付与し、同様の名前/アドレスを持つすべてのクライアントを取得したいと考えています。クライアントは、ボタンをクリックするだけで両方の顧客を結び付けることができます。

私はコードでこれを行うためにSolariumBundleを使用していますが、最初に生のクエリで動作するようにするだけで十分なはずです.

これは私のsolrconfig.xmlです

私のschema.xmlの関連部分は次のとおりです。

私は現在、次のクエリを実行してhttp://localhost:8983/solr/core0/mlt?q=entity_id%3A50&wt=json&indent=true&mlt.fl:customer_dataいます: 似たような名前の顧客の結果が返されます。たとえば、customer_id:50 (私が照会しているもの) の名前が「Foo Bar」の場合、「Foo Bar」、「Bar Foo」、「John Foo」という名前の顧客が返されます。通り/国/郵便番号の類似性は機能しません。

debug:parsedquery では、さまざまな変化が見られますcustomer_data:Foo customer_data:Bar customer_data oo Bar, ...が、アドレス部分には何もありません。

クエリが次のものであることを確認するにはどうすればよいcustomer_data:Foo customer_data:Bar customer_data:teststreet customer_data:Antwerpですか?

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

solr - Solr MLT コンポーネントで、Solr MLT が特定のファイルを返す理由を見つけることができますか?

Solr MLTを使いたいです。検索で特定のドキュメントが Solr MLt によって返される理由を知りたいです。たとえば、いくつかのドキュメントが返された場合、親ドキュメントと一致する単語またはフレーズがいくつかあるはずです。Solr で、MLT が親の類似ドキュメントを返すため、これらの単語/フレーズを取得する方法はありますか?