問題タブ [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.
sql - SQL Full Text Indexing が # を含む単語の結果を返さないのはなぜですか?
たとえば、SQL Server 2005 を使用したクエリは次のようになります。
以下を使用すると結果を返す列 SearchField を使用するように定義されたフルテキスト インデックスがあります。
# は特殊文字だと思いますが、上記のクエリで FREETEXT が正しく機能するようにするにはどうすればよいですか?
sql-server - SQL Server で主要なワイルドカード全文検索を機能させるにはどうすればよいですか?
注: SQL の全文検索機能、CONTAINS 句などすべてを使用しています。* は全文のワイルドカード、% は LIKE 句専用です。
「先頭のワイルドカード」検索 (「*overflow」を使用して「stackoverflow」に一致させるなど) が MS SQL でサポートされていないことをいくつかの場所で読みました。CLR 関数を使用して regex matching を追加することを検討していますが、他のソリューションがどのようなものか知りたいです。
詳細情報:アスタリスクは単語または語句の末尾にのみ追加できます。- 私の経験的経験とともに: 「myvalue」に一致する場合、「my*」は機能しますが、「(アスタリスク)値」は、次のような単純なクエリを実行すると一致しません。
したがって、回避策が必要です。私は実際の検索ページで自分のサイトの検索を使用しているだけなので、基本的には Google と同じように機能する必要があります (Joe Sixpack タイプのユーザーの目には)。それほど複雑ではありませんが、この種の一致は失敗するべきではありません。
sql-server - SQL Server 2005 Express でフルテキスト インデックス作成を有効にする方法は?
SQL Server 2005 Express でフルテキスト インデックス作成を有効にしようとしています。Vista Ultimate を搭載したラップトップでこれを実行しています。
SQL Server Express の標準バージョンにはフルテキスト インデックスがないことを理解しています。「Microsoft SQL Server 2005 Express Edition with Advanced Services Service Pack 2」をダウンロードしてインストールしました (ダウンロード)。
また、「SQL Server (インスタンス)」サービスと「SQL Server 全文検索 (インスタンス)」サービスの両方が「Network Service」という同じアカウントで実行されていることも確認しました。
また、[データベース プロパティ] > [ファイル] 領域で [フルテキスト インデックスを使用する] オプションを選択しました。
SQL クエリ「SELECT fulltextserviceproperty('IsFulltextInstalled');」を実行できます。1 を返します。
私が抱えている問題は、テーブルをデザイン ビューで開いて [フルテキスト インデックスの管理] を選択したときです。フルテキスト インデックス ウィンドウにメッセージが表示されます...
「フルテキスト インデックスを作成できません。適切な権限があること、またはフルテキスト カタログが定義されていることを確認してください。」
何を確認するか、次にどこに行くべきかについてのアイデアはありますか?
sql-server - SQL Server の全文検索
私は現在、SQL Server データベースがあるアプリケーションに取り組んでおり、人の名前を検索できる全文検索を機能させる必要があります。
現在、ユーザーは 3 つの異なる varchar 列を検索する名前フィールドに a を入力できます。名、姓、ミドルネーム
したがって、次の情報を含む 3 つの行があるとします。
1 - フィリップ - J - フライ
2 - エイミー - ヌル - ウォン
3 - レオ - ヌル - ウォン
ユーザーが「Fry」などの名前を入力すると、行 1 が返されます。ただし、Phillip Fry、Fr、または Phil と入力すると、何も取得されません..そして、なぜこれを行っているのかわかりません。Wong を検索すると、行 2 と 3 が得られ、Amy Wong を検索しても何も得られません。
現在、クエリは CONTAINSTABLE を使用していますが、結果に目立った違いはなく、FREETEXTTABLE、CONTAINS、および FREETEXT に切り替えました。テーブル メソッドは同じ結果を返しますが、ランキングを伴うため、優先されます。
これがクエリです。
何か案は...?この全文検索が正しく機能しないのはなぜですか?
sql-server-2005 - SQL Server 2005 で FREETEXT() を使用してキーワードの AND 検索を実行できますか?
複数の用語が使用されている場合に、SO 検索を現在の OR よりも AND スタイルの機能にデフォルト設定するという要求があります。
公式の回答は次のとおりでした。
思ったほど単純ではありません。SQL Server 2005 のFREETEXT()関数を使用していますが、AND と OR を指定する方法が見つかりません。
それで、方法はありますか?
私が見つけることができるリソースはたくさんありますが、私は専門家ではありません。
sql-server - SQL Serverの左結合テーブルで複数の条件を全文検索するにはどうすればよいですか?
元々次のようなクエリがあります。
90,000レコードのデータベースでは、このクエリの実行には約7秒かかります(明らかに、すべての結合といいねが負担になります)。
関連する列の全文検索を使用して、クエリの実行時間を短縮する方法を模索してきました。ただし、特に結合条件が検索語の一部ではないため、このような3つのテーブル結合を含む全文検索の例は見たことがありません。
全文検索でこれを行う方法はありますか?
@David
はい、IDにはインデックスがあります。
CustomerAddressのもの(CityName、PostalCodeなど)にインデックスを追加しようとしましたが、クエリが3秒に短縮されましたが、それでもこのようなものには遅すぎます。
すべてのテキストフィールド(IDを除く)はnvarcharsであり、Line1はnvarchar 1000であるため、速度に影響を与える可能性がありますが、それでもなお注意してください。
c++ - MS SQL、C++ ソリューションに代わる最良の全文検索
Microsoft SQL に代わる最良の全文検索は何ですか? (MS SQL で動作します)
LuceneとLucene.NETに似たものを探していますが、.NET と Java の要件はありません。また、商用アプリケーションで使用できるソリューションを見つけたいと考えています。
algorithm - 「関連」度測定アルゴリズムを実装する方法は?
Stackoverflow の驚くべき機能を紹介されたとき、今日は質問をするつもりでした。質問のタイトルを書いたとき、stackoverflow はいくつかの関連する質問を提案してくれましたが、すでに 2 つの同様の質問があることがわかりました。それは見事でした!
それから、そのような機能をどのように実装するかを考え始めました。関連性によって質問を並べ替える方法:
- 新しい質問と一致する単語数が多い質問
- 一致数が同じ場合、単語の順序が考慮されます
- タイトルに含まれる言葉ほど関連性が高い
それは単純なワークフローですか、それとも複雑なスコア アルゴリズムですか? おそらく、リコールを増やすためのいくつかのステミングですか?この機能を実装するライブラリはありますか? 他にどのような点を考慮しますか?たぶん、ジェフは自分で答えることができます!これをどのように Stackoverflow に実装しましたか? :)
svn - 転覆履歴の検索 (全文)
すべての履歴を含め、Subversion リポジトリの全文検索を実行する方法はありますか?
たとえば、どこかで使用した機能を書きましたが、その後は必要なくなったので、ファイルを svn rm しましたが、別の目的で使用するためにもう一度見つける必要があります。svn のログには、おそらく「未使用のものを削除しました」などと書かれており、そのようなチェックインがたくさんあります。
編集 2016-04-15:ここで「全文検索」という用語が求めているのは、ファイル名やコミット メッセージではなく、コミット履歴の実際の差分を検索することであることに注意してください。私がこれを指摘しているのは、上記の著者の言い回しがそれをうまく反映していないためです。彼の例では、ファイル名やコミット メッセージだけを探している可能性があるからです。したがって、多くのsvn log
回答とコメント。
sql-server - MS SQL FTI - 「n*」で検索すると数値が返されます
これは、SQL のフルテキスト インデックスからの奇妙な動作のようです。
FTI は「NN」プレフィックスを付けてインデックスに番号を格納するため、「123」は「NN123」として保存されます。
ユーザーが N で始まる単語 (つまり "n*" を含む) を検索すると、すべての数字も取得されます。
そう:
戻り値:
その最後の行を除外する良い方法はありますか? これに対する一貫した回避策はありますか?
これらの追加の "" は、ワイルドカード トークンを機能させるために必要です。
リテラル n* を検索しますが、何もありません。