問題タブ [full-text-search]
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.
c# - ナレッジベースシステムの検索エンジンを構築するにはどうすればよいですか?
C#を使用して、全文検索機能をナレッジベースシステムに組み込む必要があります。どうすれば始められますか?
.net - Lucene.NET で数値をインデックス化して検索する方法は?
Lucene.NET (バージョン 2.0)を使用して Web サイトの全文検索を実装しました。索引付けと検索はうまく機能しますが、1 つ問題があります。番号(電話番号、製品番号など)を検索語として検索すると、結果のドキュメントが得られません。
Lucene.Net.Analysis.SimpleAnalyzer クラスを使用しています。Analyzer や Tokenizer を変更する必要があると思います。
何かアドバイス?
ありがとうございました!
sql-server - %book%の全文カタログ/インデックス検索
単語/式の途中に表示されるもの(「LIKE%book%」の検索など)を検索する方法に頭を悩ませようとしていますが、SQL Server(2005)の全文カタログにあります。
どうやってやるの?両方のように見え、検索式の先頭CONTAINS
でワイルドカードをFREETEXT
実際にサポートしていません-それは本当に可能ですか?
FREETEXT(*, "book")
「再予約」など、「本」が入っているものなら何でも見つかると思いました。
sql - 部分キーワード検索 (MS SQL 2005)
現在、映画やテレビ番組のデータベース テーブルを全文検索することを主な目的とするストアド プロシージャがあります。部分キーワード検索を行うために、検索クエリをスペースで分割するコードを SQL に追加し、次のようなステートメントを出力しました。
"batman*" ~ "be*"
たとえば、元の文字列「batman be」は、ユーザーが入力しているときにページ上のテキストボックスから生成でき、JavaScript キーアップイベントごとに、そのテキストボックスにあるものをストアド プロシージャに送信して、結果を次のように取得します。入力します(オートコンプリートのように)。この場合、ユーザーは "Batman Begins" または "The Batman: Batgirl Begins" (テレビ番組のエピソード) を探していた可能性があり、結果として両方が表示されるはずです。
以下は私のクエリのサンプルです。上記の例では、@partialKeywordString は"batman*" ~ "be*"
.
クエリの問題は、ランキングが期待どおりに表示されないことです。「バットマン」だけを検索すると、「バットマン」という単語で始まる、または「バットマン」という単語だけを含むすべての映画のタイトルが最初に表示されると思われます。しかし、そうではありません。
「バットマン」だけを検索した場合の結果の例を以下に示します。
「バットマン:アニメシリーズ - エピソード 114」
「バットマンとロビンの冒険 - エピソード 218」
「バットマンとロビン - エピソード 101」
「バットマン - エピソード 101」
「バットマンとロビン - エピソード 204」
リストのずっと下に、私が探していた映画があります。「バットマン ビギンズ」または単に「バットマン」です。
このクエリを微調整する方法についてのアドバイスを探しています。私は間違いなく SQL の専門家ではなく、上記のコードを手動で処理して動作させただけのように感じます。もっと洗練された、または強力な解決策があるような気がしますが、まだ見つけていません。
前もって感謝します
database - 比較: DB 全文検索と検索エンジン (Lucene)
stackoveflow.com の観点から (スケーリングを目的とした Web サイト プロジェクトを構築する 2 ~ 3 人のエンジニアのチーム)、開発プロセスの早い段階で、データベース ベースではなく Lucene/Autonomy に基づく検索を構築するために労力を費やすことは理にかなっていますか?全文検索。
長所/短所:
Nutch や Autonomy などの成熟した Lucene 実装では、後の段階で Lucene に移行するコスト (これは避けられません) はごくわずかです。
大量の場合、増加する検索インデックスを維持するために追加のインデックス サーバーを追加すること (たとえば、nutch) は比較的簡単です。
Lucene の実装では、ほとんどの場合、インメモリ インデックスを管理するために追加のサーバーが必要になります (スケーリング プロセスのかなり早い段階で)。
character-encoding - 中国語の文字を SQLExpress テキスト フィールドに挿入するにはどうすればよいですか?
中国語の文字を SQLExpress テキスト フィールドに挿入するにはどうすればよいですか? VS 2008 から SQL Express を使用しています。作成したインポート アプリを使用するか、Visual Studio 内のデータ ビューから漢字を貼り付けて漢字を追加すると、疑問符になってしまいます。
sql-server - SQL Server 加重全文検索
現在、FirstName、LastName、MiddleName、および AKA の 4 つのフィールドを検索するテーブルがあります。現在、行のCONTAINSTABLE検索があり、機能しています。うまくいきませんが、うまくいきます。ここで、First Name の重みを高くし、Middle Name の重みを低くしたいと考えています。
コマンドISABOUTを見つけましたが、列ではなく単語で実行する必要がある場合、それはかなり価値がないようです(うまくいけば、これが間違っていることを理解していました)。ユーザーが入力する単語数がわからないため、単語単位の場合、これはオプションではありません。
この同じ解決策について話しているスレッドを見つけましたが、受け入れられた解決策を機能させることができませんでした。たぶん私は何か間違ったことをしたのですが、それを機能させることができず、そのロジックは本当に...奇妙に思えます。もっと簡単な方法があるはずです。
sql - CONTAINSTABLE を使用して column1 の「word1」と column2 の「word2」を検索することは可能ですか?
以前は、いくつかの単語について 2 つの列をチェックする検索がありました。両方の列には提供された単語が含まれている必要があるため、AND を使用します...列で FULLTEXT INDEX が使用されていることは間違いありません。
選択は多かれ少なかれ次のようになります。
次に、結果にランキングを追加する必要があります。CONTAINSTABLE 機能を使用したいと思います... 1 つの列だけが単純です。何かのようなもの:
2列でそれを行うことは可能ですが、列1で単語1または単語2を検索するだけでよいと考えてください(列2に単語1または単語2があるかどうかは関係ありません)。また、WHERE 句に含まれていた AND も考慮してください。次のようなものがありますか:
search - インデックスを作成せずにファイル内の文字列を検索するためのツール
信じられないほど古いレガシーアプリケーションのいくつかの接続文字列を変更する必要があります。それを作成したプログラマーは、アプリ全体に接続文字列をあちこちに貼り付けるのは素晴らしいアイデアだと考えました。
Visual Studioの「現在のプロジェクト」の検索は非常に遅く、WindowsSearchを信頼していません。
それで、そこにある最高の無料の、索引付けされていないテキスト検索ツールは何ですか?必要なのは、フォルダとそのサブフォルダ内に必要な文字列を含むファイルのリストを返すことだけです。
Windows2003Serverを実行しています。
sql-server - 全文検索ランキング(SQL Server)
ここ数時間、私は SQL Server の全文検索のあらゆる種類のさまざまなバリエーションをいじっていました。しかし、ランキングの仕組みがいまいちよくわかりません。私はいくつかの例に出くわしましたが、それらが他のものよりもどのようにランク付けされているかについて本当に混乱しています. 例えば
インデックスが作成されていない 5 つの列以上のテーブルがあります。すべてがnvarchar
フィールドです。
私はこのクエリを実行しています(ほぼ..別の名前で再入力しました)
したがって、11/05/1964 JOHN JACKSONを検索すると、 "11/05/1964" OR "JOHN*" OR "JACKSON*"と次の結果が得られます。
最後に私の質問です。行 1 と 2 が行 3 より上にランク付けされている方法と、行 3 が行 4 と同じようにランク付けされている理由がわかりません。検索文字列が名と姓にも一致するため、行 2 がはるかに高いランクになるはずです生年月日として。
OR を AND に変更すると、結果が得られません。