問題タブ [lucene-highlighter]
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.
lucene - Lucene - 検索で * を使用するとハイライターが例外をスローする
Lucene 4.6.1 と Highlighter 4.6.0 を使用しています。インデックス作成は適切に機能しているので、検索コードを表示します。
例: 私のインデックスには、「プロセス 001」、「プロセス 002」、「プロセス 003」などの名前のドキュメントが多数あります。プロセスで検索しようとすると、すべてのプロセスを取得できます (これは完璧に機能しています!)。proc*、pr*、またはそのようなもので検索しようとすると、問題が発生します...エラーは次のとおりです。
例外は次の行で発生します。
蛍光ペンのコードを削除すると、検索は * で適切に機能します
solr - Lucene 近接クエリでテキストを取得する
Lucene を使用して一連の文にインデックスを付けています。私のクエリには2つの「エンティティ」があり、次のような近接クエリを作成します:
この 2 つのエンティティを含むすべての文を最大 22 文字の範囲で取得したいと考えています。ここで、Lucene Highlighter を使用して、2 つのエンティティ間の単語を取得したいと考えています。このようなコードを使用してコンテンツをフラグメントに分割していますが、2 つのエンティティ間の正確な位置にフラグメントを設定する方法がわかりません。
私の目的は、エンティティ内のテキストを取得することです。たとえば、次のようになります。
lucene - 複数のフィールドで Lucene FastVectorHighlighter を使用するには?
基本的な検索が機能しており、 を使用して強調表示してFastVectorHighlighter
います。ハイライターに「最適なフラグメント」を要求すると、ここgetBestFragment(s)
に記載されているいくつかのオーバーロードから選択できます。私は今、次のような最も単純なものを使用しています。
そのため、「説明」フィールドから一致を強調しています。ただし、私のクエリは別のフィールド「メモ」を検索します。それをハイライトに含めるにはどうすればよいですか?Set<String> matchedFields
aと oneを取るオーバーロードがありますがString storedField
、ドキュメントがわかりません。メソッドのドキュメントには次のように書かれています。
すべてのmatchedFieldsがstoredFieldと同じソースを共有するか、少なくともそのプレフィックスであることが推奨されます。
どういう意味ですか?matchedFields
「メモ」と「説明」の文字列にインデックスを付けるにはどうすればよいstoredField
ですか?
java - ルセンの検索から段落応答を取得する方法は?
lucene を使用してアプリケーションに検索コンポーネントを作成しました。インデックス作成、強調表示など、すべて正常に機能します。SimpleSpanFragmenter メソッドで結果を「fragmentSize」に制限するだけでなく、検索応答として段落を返す必要があります。コードの一部があります。
このコードは、256 に設定した "MAX_FRAGMENT_LEN" を返しますが、理想的ではありません。クエリに検索語を含む段落を取得したい。
elasticsearch - クエリで一致した部分を強調表示するElasticSearch
マッチ クエリを ElasticSearch に送信すると、一致するフィールドが強調表示されたドキュメントが返されます。私がやろうとしているのは、一連のドキュメントをクエリ内の一致する部分文字列にマップすることです。
たとえば、「クイック ブラウン」でクエリを実行するとします。ドキュメント「quick silver」を「quick」、「brown fox」を「brown」、「mr brown」を「brown」にマッピングしたいと思います。
ドキュメント フィールドにクエリの単語が正確に含まれている場合、これは些細なことです。しかし、あいまいさ、同義語、asciifolding などを使用すると、事態が混乱します。その場合、検索結果の強調表示された部分が検索クエリに表示されないこともあります。
アプリケーションでアナライザー ロジックを複製せずに、このタスクを達成することは可能ですか?
lucene - Lucene MultiFieldQueryParser とハイライター
さまざまなフィールドを通じて lucene インデックスの記事をインデックスしてtitle
いdescription
ますlink
。publishDate
次のようにMultiFieldQueryParserを使用してインデックスをクエリします
そして、記事を検索結果として表示します。これまでのところ、すべてが良好です。ここで、タイトル、説明の検索テキストを強調表示したいと思います
これについてどうすればいいですか?通常のハイライターでは、フラグメントの生成中にNullPointerExceptionが発生します。そしてPostingHighlighterは、フィールドに従ってグループ化された結果を私に与えMap
ます..しかし、私はそのようにしたくありません。タイトルと説明の検索テキストの強調表示と一緒に返されるドキュメント全体でした。
ヘルプ、提案、またはコード スニペットをいただければ幸いです。
java - Lucene 5.3 ハイライター getBestFragments() が機能しない
次のコードを使用して、取得した結果のスニペットを取り出しています。以下に示すエラーは、getBestFragment() 関数が使用されている行で発生しています。Apache Tomcat 7.0 を使用しています。助けてください。
エラーは
performance - Lucene Highlighter 操作のパフォーマンスを向上させるにはどうすればよいですか?
Lucene.Net を使用して、C# で検索/閲覧アプリケーションのプロトタイプを作成しました。ソース データは、Lucene を使用してインデックスを作成した 1 つの適度な 5 MB の XML ファイル (約 900 の "ドキュメント" を含む) です。私の検索は正常に機能しており、かなり高速です。このアプリケーションでは、各「ヒット」ドキュメントをブラウズして表示することが重要であるため、ユーザーはヒットを選択してそのドキュメントの完全なビュー (通常は画面の半分に収まる) を確認できます。一致する検索語がハイライト表示されている必要があります。見る。私は WPF と MVVM アプローチを使用しています。ドキュメント ビューは現在、約 12 個の ContentControls で実装されており、そのうちの 6 個は、highlightConverter を使用する検索可能なフィールドを表示するためのものです。
パフォーマンスが非常に悪かったので、問題を切り分けるためにストップウォッチのタイミングを追加しました。私のモデルの HighlightSearchTerms メソッドが原因のようです (実行に約 100 ~ 600 ミリ秒かかります)。このメソッドを省略して入力テキストを返すだけにすると、パフォーマンスは問題ありません。
メソッドは次のとおりです。
数年前、私は「Lucene In Action」という本を読み、関連する部分に目を通し、何かアイデアが得られるかどうかを確認しました。私もネットでよく調べました。そのため、いくつかの質問または調査の可能性のある領域を以下に示します。
- どうにかして採点を省略できますか? 一致する検索語のコンテキストを表示する必要がないため、ヒットしたドキュメントをフラグメントに分割して、さまざまなフラグメントの「スコア」を取得する必要はありません。ヒットのリストをタイトル別に表示したいのですが、ユーザーが 1 つのヒットを選択すると、ヒットしたドキュメント全体が強調表示されて表示されます。NullFragmenter と GetBestFragment の使用方法はわかりましたが、それがスコアリング操作を短絡させるかどうかはわかりません。スコアリングを省略すると、パフォーマンスが向上しますか?
- ビューをリファクタリングして、ヒット ドキュメントを HTML または RTF テキストの 1 つの塊として表示するための単一のウィジェットを作成することを検討しました。そうすれば、10 回または 15 回ではなく、1 回だけハイライト メソッドを呼び出すことができます (一部の ContentControls は ItemsControl 内にあるため、ビューにはいくつかのフィールドの複数のインスタンスがあります)。これにより、パフォーマンスが大幅に向上することを期待しています。強調表示は、表の書式設定などでマークアップされたテキストになりますが、それでも機能すると思いますか?
- ハイライト方法が非常に遅くなる原因が他にありませんか? 0.5 秒では遅すぎるように思えます。基本的なことを本当に台無しにしているように思えます。