問題タブ [containstable]

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

sql - SQL Server のフルテキスト検索で数字が一致しないのはなぜですか?

SQL Server 2014 Express を使用しており、テーブルにフルテキスト インデックスを設定しています。

フルテキスト インデックスは、この例では という名前の 1 つの列のみにインデックスを付けfooます。

テーブルには 3 つの行があります。そのフルテキスト インデックス付き列の 3 行の値は次のようになります...

上記の新しい各行はテーブルの新しい行であり、そのテキストは文字どおりフルテキスト インデックス付き列にあるものです。したがって、SQL Server のCONTAINS関数を使用して、次のクエリを実行すると、期待どおり、すべての行が一致として返されます。

しかし、次のクエリを実行すると、すべての行が一致として返されますが、これは予期していません。次のクエリでは、1 行だけが一致すると予想していました。

最後に、単純に「3」を検索すると、一致する行が返されません。これも予想外でした。次のクエリから 1 つの一致する行が期待されますが、何も取得されません。

CONTAINS全文索引作成に関する MSDN ページを読みましたが、この動作がわかりません。私は何か間違ったことをしているに違いない。

何が起こっているのか、私が説明した検索を実行する方法を説明できる人はいますか?

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

sql-server - 検索条件に CONTAINSTABLE の列名を使用する方法は?

最後の検索条件パラメーターに列名を渡す次のような構文はどちらもサポートしていないCONTAINSか、サポートしていないようです。CONTAINSTABLE

上記のクエリは、「't' 付近の構文が正しくありません」というエラー メッセージを返します。

Termsテーブルには列を持つ複数の行が含まれており、FulltextTermそれらのFulltextTerm値のいずれかが ArticleBody にある場合、特定の記事が選択されるように一致する必要があります。これが私が達成しようとしていることです。

CONTAINSCONTAINSTABLE検索条件パラメーターの文字列リテラルまたは変数のみをサポートしているように見えますが、これは非常に制限的です。Termsそれが唯一のオプションである場合、カーソルまたはループを使用してテーブルを反復処理する必要がある場合、さらに多くのコードが必要になり、確かにはるかに遅くなります。

ここにトリックがありませんか、または誰かが提案できる回避策があります-できればセットベースのソリューション、つまりループを回避します。

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

sql - iFTS フリーテキスト SQL Server 2014 複数の列 複数のキーワード

私は FTS から始めていますが、問題に行き詰まりました。Containstable を使用してテーブルを検索しようとすると、すべての列を検索する方法がわかりません。この名前の誰かが存在することを知っていても、0 要素を返します。

元:

Select [Id],[LastName], [Firstname] from Employee E
INNER JOIN ContainsTable(Employee, ([LastName], [Firstname]), '"firstname" AND "lastname"') as E1 on E1.[Key] = E.Id
ORDER BY [ランク] desc

OR では機能しますが、AND 演算子では機能しません。

代わりに Freetexttable を使用すると、あまりにも多くの従業員が返され、演算子の単語は考慮されません。

Stackoverflow に関する多くの投稿を読みましたが、解決策がわかりませんでした。検索可能な多くの情報を使用して、テーブルにインデックス付けされたデータを拡張しようとしていますが、今のところ、2 つのフィールドで立ち往生しています。

あなたの答えを楽しみにしています。

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

sql-server - 全文検索構文エラー

カタログとインデックスを使用して全文検索を作成しました。次のような 1 つの単語を含むクエリを実行すると、contains クエリは正常に機能します。

「テストギフト」を返します

テーブルには 1 つの行しかなく、名前列のデータは次のようになります: 「テスト ギフト」

しかし、次のステートメントで conaints クエリを実行すると:

全文検索条件「テストギフト」の「ギフト」付近に構文エラーがあります。

contains は、一致して同じように聞こえるフレーズや複数の単語を照会できると思いましたか?

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

sql-server - mssql の全文検索をエンドユーザーにとって便利にする

当社の製品の 1 つに全文検索を実装しました。キーワードを使ってCONTAINS/CONTAINSTABLE検索しています。しかし、問題は、間違った検索条件/入力のために、構文エラーが頻繁に発生することです。

全文検索をエンドユーザーにわかりやすくする簡単な方法はありますか、それとも検索を実行する前に独自のプリパーサーを作成する必要がありますか? たとえば、検索を分流ヤードで分割し、完全な新しい検索文字列を作成しますか?

SAP Sybase SQL Anywhere が提供するような、より簡単な方法があればいいのですが (優れた堅牢な全文検索/インデックスがあります)。

ありがとうございました!

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

sql - SQL 全文索引の内容

私は SQL FTI にかなり慣れていないので、何百万もの異なる製品アイテムを含むテーブルに対する検索を完璧にしようとしています。

このような検索に合格した場合:

これらの結果が返されます:

実際のiPhone 6電話を含めることができるようにしたいのですが、ケースやスクリーンプロテクターなどの周辺機器は無視しますが、これを行う方法がわかりません.

アドバイスをいただければ幸いです。

ありがとう

0 投票する
2 に答える
245 参照

html - テキストとhtmlの両方にSQLサーバーのcontainstable関数を使用する方法

私は、クライアントが履歴書のフロントエンドからキーワードを送信し、containstable を使用してそのキーワードのテーブルの列を検索し、結果をフロントエンドに返すアプリケーションで作業しています。

私のアプリケーションでは、最初に履歴書の詳細をテキスト形式で保存し、その後、html 形式で追加し始めました。現在、検索機能は古い履歴書テキストに対しては正常に機能していますが、Html の場合は期待される結果が得られません。そのため、テキストまたは HTML の両方で含まれる検索機能が機能するようにするにはどうすればよいでしょうか。

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

sql-server - SQL Server ContainsTable が用語 "inn" で結果を返さない

hotel次の情報を含むテーブルがあります。

  • Hotel_Id: 2950
  • Hotel_Name: イン オン ザ パーク
  • Hotel_Number: 01234567
  • Hotel_TypeId: 1

名前列に特定の用語が含まれるレコードを検索できるようにする必要があります。

検索は次のとおりです。

結果は得られませんが、検索すると:

私は得る

「旅館」という用語に問題があると思いましたが、検索すると:

同じキー: 2950、ランク: 176 の結果が返されます。

「旅館」はこの問題を引き起こしているキーワードですか?

0 投票する
2 に答える
1069 参照

sql-server - SQL Server フルテキスト インデックス "it" を含む完全一致検索を含む

私は、SQL サーバーのフル テキスト インデックスを初めて使用します。私にとっては非常にうまく機能していますが、最近誰かが「IT Manager」の完全一致検索を行ったところ、検索の「IT」部分が無視されたようです。

例えば

同じ結果を返します。私は何を間違っていますか?

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

sql - テーブルの列からのSQL全文検索キーワード

次のクエリがあります

しかし、エラーが発生しています: 'temp_names' 付近の構文が正しくありません。

何らかの理由でテーブル temp_names が表示されないためです。

次のような内容を含まないクエリを使用してみました。

動作しますが、200 万以上のレコードに達すると、非常に重くなります。

上記の最初のクエリのように、全文検索を使用して列名を渡すにはどうすればよいですか?

ありがとうございました。

編集

完全一致を見つけるかどうかは問題ではありません