問題タブ [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# - 検索機能を構築する最良の方法
私は 400,000 を超えるアイテムを持つ Web サイトを持っています。似ているものもあれば、大きく異なるものもあります。これらのアイテムを可能な限り最良の方法で検索する方法を提供したいと考えています。Web サイトが配信された後、全文索引を使用していました。解決策はせいぜい基本的なものであり、最悪の場合はひどく不適切です。
では、これらのアイテムを検索する最良の方法は何ですか? それらは SQL Server データベース (2005) に格納されます。私たちのウェブサイトは C# 2.0 で設計されています。
現在、ここにプロセスがあります:
- ユーザーがテキスト ボックスに値を入力します。
- このエントリを「クリーン」にします。ハッキングの試みである可能性のある「怖い」文字を削除します。キーワードを削除する (and、or など)
- 値をストアド プロシージャに渡して結果を返します。
- 結果を返します。
sql-server - 計算列の全文検索
連結された2つのフィールドで全文検索を許可する必要があります。この場合、FullName = FirstName +''+LastNameです。簡単なアプローチは、FullNameで計算された列を作成し、それをフルテキストのインデックス作成の列として含めることです。これは許容できるアプローチですか?どうしますか?
UPDATEとINSERTが発生することはめったにありません。比較すると、CONTAINSを使用したSELECTは非常に一般的です。SQL2008を使用しています。
FirstName、LastName、NickName、FullNameが全文検索で使用される列であるサンプルテーブル定義:
ruby-on-rails - Acts_as_ferret は単一のインデックスを使用します
テキスト検索をアプリケーションに追加するために、acts_as_ferret を使い始めました。私のサンプルアプリ (別のブログ!) では、次のように定義して記事にインデックスを付けました。
単一のフィールドで検索するオプションが欲しいです。たとえば、タイトルまたは本文に「rails」が含まれるすべての記事ではなく、タイトルに「rails」が含まれるすべての記事を取得します。
検索をインデックス内の 1 つのフィールドに制限するにはどうすればよいですか?
乾杯、
アダム
nhibernate - PostgreSQL 全文検索と Lucene.Net 経由の NHibernate.Search の比較
現在のプロジェクトで NHibernate.Search を選択するか、PostgreSQL の組み込み全文検索サポートを選択するかを検討しています。
ご想像のとおり、.NET プラットフォーム上で NHibernate ORM を備えた PostgreSQL RDBMS を使用しています。上記のフルテキスト エンジンについて、どのような経験がありますか? 注意すべき落とし穴はありますか?
sql-server-2005 - SQL Server 2005 のフルテキスト インデックス作成でノイズ ワードを削除する
非常に典型的なシナリオでは、Web アプリケーションに「検索」テキスト ボックスがあり、ユーザー入力がストアド プロシージャに直接渡されます。このストアド プロシージャは、フルテキスト インデックスを使用して、適切なキーを使用して結合された 2 つのテーブルの 2 つのフィールドを検索します。
CONTAINS 述語を使用してフィールドを検索しています。検索文字列を渡す前に、次のことを行います。
たとえば、城を"the*" OR "castle*"に変更します。これが必要なのは、人々がcasで検索して、 Castleの結果を得られるようにしたいからです。
問題は、各単語の末尾にワイルドカードを追加したため、ノイズ ワード (たとえば、 ) にもワイルドカードが追加されたため、削除されたように見えなくなったことです。これは、城を検索すると、劇場などの単語を含むアイテムが返されることを意味します。
OR を AND に変更することを最初に考えましたが、クエリでノイズ ワードが使用された場合、単純に一致が返されないように見えます。
私が達成しようとしているのは、ユーザーが検索している単語の全体または接頭辞を表すスペースで区切られた複数の単語を任意の順序で入力できるようにすることです。彼らが城を検索すると、アイテムの大きなリストが得られ、リストの真ん中に必要な結果が得られます.
先に進んで独自のノイズ ワード除去手順を実装することもできますが、それは全文索引作成で処理できるように思われます。
助けてくれてありがとう!
ジェイミー
.net - 全文検索が必要ですか?必要な場合、sql2000で全文検索を実装する方法は?
私はasp.netmvcプロジェクトにLinq2Sqlを使用していますが、これまでのところうまくいきました。ただし、ここで、最大3レベルの深さで結合された10個の結合されたテーブルにまたがる約20個のフィールドでx個のキーワードを検索する「キーワード検索」を実装する必要があります。linq関数は本当に単純ですが、生成されたクエリは遅すぎます(2ワードで約25秒)。キャッシングを実装しましたが、キャッシングだけでは効果がありません。自分でストアドプロシージャを試してみて、少しだけ改善しましたが、最適化は非常に限られていました。
今、私は全文検索を読みました、そして私がそれを正しく理解しているならば、これは私が必要としているもののように見えます。誰かがこれを確認できますか?システムはSQL2000で実行する必要があります。FTSが私が必要としているものである場合、誰かがそれを設定する方法について私を助けてくれますか?SQL2000に組み込まれていますか?このために他のライブラリ/サービスが必要ですか?
sql - SQL全文検索と「LIKE」
ユーザーが所有するDVDに情報(タイトル、俳優、年、説明など)を保存できる非常にシンプルなアプリがあり、ユーザーがこれらのフィールド(「キアヌリーブス」など)でコレクションを検索できるようにしたいとします。または「マトリックス」は有効な検索クエリになります)。
SQL全文検索を使用することと、クエリをスペースで分割してSQLステートメントでいくつかの「LIKE」句を実行することの利点は何ですか。単にパフォーマンスが向上するのでしょうか、それとも実際にはより正確な結果が返されるのでしょうか。
sql-server - 多くのレコードを追加した後のSQLServerFTSのパフォーマンス
クライアントが名前の大きなリストを管理できるようにするWebアプリケーションがあります。これらのリストを検索するには、SQL Server 2008のFTSを使用します。これは、通常は適切に機能します。私たちの最大のクライアントは900,000の名前を持っており、1秒未満の検索時間を楽しんでいます。
ただし、別の新しいクライアントの場合、最近150,000の名前をインポートしましたが、パフォーマンスはひどいものです(サーバーのように、衰弱させるほどひどいものです)。フルテキストインデクサーを確認したところ、最近クロールが完了したとのことです。
実行プランを見ると、高速の場合(大規模なクライアントの場合)、SQL Serverが最初にFTSを実行し、次に結果に対してインデックスシークを実行することがわかります。新しいクライアントの場合、最初にインデックスシークを実行し(明らかに、新しいレコードの場合は150,000回)、次にFTSを実行します。
そこで、WITH(INDEX(MyFullTextIndex))ヒントを試しましたが、SQLServerはインデックスが存在しないと言っています。どうやら、これらのFTSインデックスを「実際の」インデックスとは見なしていないようです。SQL Serverに常に最初にFTSを使用させるにはどうすればよいですか?
更新:統計を再生成しようとしましたが、役に立ちませんでした。同じパフォーマンスの問題。
実行計画は次のとおりです。
高速パフォーマンス: http: //frameaction.com/LLExecutionPlan01.sqlplan
パフォーマンスが遅い:http: //frameaction.com/LLExecutionPlan18.sqlplan
sql-server - SQL Server 2008 全文検索 (FTS) と Lucene.NET の比較
過去に SQL 2005 と Lucene.NET について質問があったことは知っていますが、2008 年以降、SQL 2005 に多くの変更が加えられたため、長所/短所 (または記事へのリンク) を教えてくれる人がいるかどうか疑問に思っていました。