問題タブ [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.
mysql - 全文検索は常に空の結果セットを返します
タイトル列を持つ「ファクト」という名前のテーブルがあります。これは全文インデックスである必要があります。
まず、全文索引を追加します。
だから、私は行を挿入します:
そして、検索を実行します。
次のクエリ、または「contains」ステートメントを含むその他のクエリを実行すると、空の結果セットが得られます。
私はこのステートメントを使用する必要があります。反対の一致などではありません。なぜこれが起こっているのか、誰かがたまたま考えているのですか?ありがとうございました。
full-text-search - ビューに対する Mariadb の一致は失敗します。MySqlで成功
以下の全文検索クエリは、mariadb では失敗しますが、mysql では成功します (phpmyadmin を使用して mysql データベースからインポートされた mariadb データベース)。
ベース テーブルが置き換えられた場合、クエリは mariadb と mysql の両方で成功します。したがって、どうやらmariadbはビューと一致できません。
これに対する解決策はありますか?それは私の移行を台無しにしています。
ありがとう。
SELECT Title
FROM Nodes_View
WHERE (MATCH( Title
, Caption
, Description
, Location
) Body
AGAINST('何か'))
mysql - MySQL FULLTEXT によるカバリング / 複合インデックス
次の表を検討してください。
sometext
カテゴリ内のdescription
フィールド内の文字列と一致する全文検索を実行するには、次を実行します。
これは、テーブルが巨大になるまでうまく機能します (特に、インデックス付き単語トークンの最小サイズを 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 節)。 category
夢は、とname
列の両方にまたがるある種の複合インデックスを持つことです:CREATE FULLTEXT INDEX yippie ON item(category,name)
、しかしこれはもちろん有効ではありません
(カテゴリごとに個別のテーブルを作成せずに) FULLTEXT 検索を使用して #3 の効果を達成する方法を知っている人はいますか?
mongodb - MongoDB テキスト検索追加言語
MongoDB がサポートする既存の言語に言語を追加することはできますか? カスタム ストップ ワードの定義が好きですか? スロベニア語でテキスト検索を使用したいと考えています。
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)、索引) この場合、「文書索引」テーブルを最新の状態に保つにはどうすればよいですか?
値を連結するインデックス付きビューを作成しようとしましたが、制限に達しました。インデックス付きビューにはサブセレクトを含めることも、他のビューを使用することもできません。
すべてのアイデアに感謝します。
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 よりもはるかに遅くなります。
ここに私が考えることができるいくつかの解決策があります:
SQL Azure の使用をやめて、通常の SQL Server をホストできる Azure VM に切り替えます。大量の読み取りが原因でDTUの制限に達したときの問題は解決される可能性があると思います
クエリを最適化します。行の約 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
ん。High
School
読み取り数を変更するためにテーブルを再編成します。(出来るかは不明)
ありがとう
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 のクエリやアプローチの間違いに気づいたかもしれません。それについて教えてください。ありがとう。