問題タブ [fulltext-index]

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 に答える
941 参照

mysql - 全文検索は常に空の結果セットを返します

タイトル列を持つ「ファクト」という名前のテーブルがあります。これは全文インデックスである必要があります。

まず、全文索引を追加します。

だから、私は行を挿入します:

そして、検索を実行します。

次のクエリ、または「contains」ステートメントを含むその他のクエリを実行すると、空の結果セットが得られます。

私はこのステートメントを使用する必要があります。反対の一致などではありません。なぜこれが起こっているのか、誰かがたまたま考えているのですか?ありがとうございました。

0 投票する
0 に答える
290 参照

full-text-search - ビューに対する Mariadb の一致は失敗します。MySqlで成功

以下の全文検索クエリは、mariadb では失敗しますが、mysql では成功します (phpmyadmin を使用して mysql データベースからインポートされた mariadb データベース)。

ベース テーブルが置き換えられた場合、クエリは mariadb と mysql の両方で成功します。したがって、どうやらmariadbはビューと一致できません。

これに対する解決策はありますか?それは私の移行を台無しにしています。

ありがとう。

SELECT TitleFROM Nodes_ViewWHERE (MATCH( Title, Caption, Description, Location) BodyAGAINST('何か'))

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

mysql - MySQL FULLTEXT によるカバリング / 複合インデックス

次の表を検討してください。

sometextカテゴリ内のdescriptionフィールド内の文字列と一致する全文検索を実行するには、次を実行します。

これは、テーブルが巨大になるまでうまく機能します (特に、インデックス付き単語トークンの最小サイズを 1 または 2 にする必要があるため)。

  1. 多くのカテゴリがあり、行の分布はカテゴリ間でかなり均等です
  2. 非 FULLLTEXT インデックスを使用すると、これをより効率的にする複合インデックスを作成できCREATE INDEX yippie ON item(category,name)ますSELECT i.id FROM item i WHERE category IN (2) AND name LIKE '%sometext%。複合カバリング インデックスによるカテゴリ where 節)。
  3. category夢は、とname列の両方にまたがるある種の複合インデックスを持つことです: CREATE FULLTEXT INDEX yippie ON item(category,name)、しかしこれはもちろん有効ではありません

(カテゴリごとに個別のテーブルを作成せずに) FULLTEXT 検索を使用して #3 の効果を達成する方法を知っている人はいますか?

0 投票する
0 に答える
432 参照

mongodb - MongoDB テキスト検索追加言語

MongoDB がサポートする既存の言語に言語を追加することはできますか? カスタム ストップ ワードの定義が好きですか? スロベニア語でテキスト検索を使用したいと考えています。

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

sql-server - ドキュメントに対する SQL Server 全文検索 (関連する複数のテーブルとフィールド)

複数のテーブルを含むドキュメント (この場合は請求書) 構造があります。

  • Invoice Header(番号 (PK)、顧客名、顧客住所、...)

  • Invoice Lines(請求書番号 (PK)、明細番号 (PK)、説明、数量、...)

  • Invoice Header Comments(インボイス番号(PK)、コメント番号(PK)、コメント)

検索を実行するとき、ドキュメント全体に対して実行したいと思います (個別のフィールド (顧客名 + 顧客住所 + 説明 + コメント) に対してではなく、1 つのエンティティとして)。

例: 「Bicycle AND Berlin」、「Munich OR Berlin」、「Fast delivery」などに関連するすべてのドキュメント....

この問題を解決するには、どのようなアプローチをお勧めしますか?

インデックスを作成するすべてのフィールド (顧客名、顧客の住所、説明、コメント) から連結された値を格納する別のインデックス テーブルを作成する必要があります - ドキュメントごとに 1 行:

文書索引(文書番号 (PK)、索引) この場合、「文書索引」テーブルを最新の状態に保つにはどうすればよいですか?

値を連結するインデックス付きビューを作成しようとしましたが、制限に達しました。インデックス付きビューにはサブセレクトを含めることも、他のビューを使用することもできません。

すべてのアイデアに感謝します。

0 投票する
0 に答える
288 参照

sql-server - Azure SQL 検索。全文検索。select ステートメントを最適化する

約2000万行のテーブルを取得しました。データベースは Azure でホストされています。(S2 層) 列の 1 つにフルテキスト インデックスを設定しました (列には郡、州、都市、町、町、村、学校、大学などが含まれます)。

select ステートメントの例を次に示します。

通常の SQL Server (Azure ではない) を起動すると、1 秒以内に最大 35,000 行が取得されます。ただし、Azure では約 6 分かかります。なぜそんなにかかるのかという問題は、DTU の最大値に達するためです。このクエリを実行すると、CPU 使用率は約 1%、データ IO 使用率は 100% (大量の読み取り) しかかかりません。ですから、そのような種類のクエリを最適化したいのです。p11 価格レベルでも、通常の SQL Server Developer Edition よりもはるかに遅くなります。

ここに私が考えることができるいくつかの解決策があります:

  1. SQL Azure の使用をやめて、通常の SQL Server をホストできる Azure VM に切り替えます。大量の読み取りが原因でDTUの制限に達したときの問題は解決される可能性があると思います

  2. クエリを最適化します。行の約 95% を除外するクエリを作成する方法があるはずです。上記で指定された行クエリの例を次に示します: Jefferson Union High School District, Miami-Yoder School District 60-JT, Upper Saint Clair School District, Louisville/Jefferson County. SQL Serverが特定の単語の中でのみ単語を含む行を返す場合、クエリを作成する方法があるかもしれませんが、クエリで単語、、、が指定されていないため取得できJefferson Union High School DistrictませUnionん。HighSchool

  3. 読み取り数を変更するためにテーブルを再編成します。(出来るかは不明)

ありがとう

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

solr - Solr for Windows が大量のメモリを必要とするのはなぜですか?

Solr for Windows が大量のメモリを必要とするのはなぜですか?

Solr の私のデータは、SEO キーワード (1 ~ 10 語、最大 120 シンボルの長さ、8 億行) とその他のデータです。スキーマは次のとおりです。

Solr for Windows は最大 10 GB の RAM を消費し、場合によってはそれ以上 (最大 16 GB) 必要になります。使用するように構成しSOLR_JAVA_MEM=-Xms8192m -Xmx16384mて動作しますが、4 GB 以下の場合、Java がエラー OutOfMemory でクラッシュしました。

それで、私は何を間違っていますか?RAM を減らすように Solr を構成するにはどうすればよいですか? のどの部分でも提供できますsolrconfig.xml

solrconfig.xml

だから、私が正確に何をしたいのか。

Solr に 8 億行を追加しました。それだけではありません。30 億行のデータセットがあります。行は、「就職活動」「ニューヨークで仕事を探す」などの SEO キーワードです。「提案」フィールドには、「仕事」や「ダウンロード」など、よく使われる同じ単語が多数含まれています。「ダウンロード」という単語は、全行の 10% に存在すると思います。

ユーザーが「ダウンロード」のようなクエリを作成し、「ダウンロード」という単語を含むすべてのドキュメントを取得できるサービスを作成します。

サービスの Web インターフェイス (PHP+MySQL) と Solr の間で通信するためのデスクトップ ソフトウェア (.NET) を作成しました。このソフトウェアは、Web サービスからタスクを取得し、Solr にクエリを実行し、Solr の結果をダウンロードしてユーザーに提供します。

すべての結果を取得するには、次のように GET クエリを Solr に送信します。

ご覧のとおり、私は fq と並べ替えを使用し、グループ化は使用していません。誰かが Solr のクエリやアプローチの間違いに気づいたかもしれません。それについて教えてください。ありがとう。