問題タブ [query-analyzer]

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

elasticsearch - ElasticSearch search_analyzer が適用されましたが、結果が返されませんでした

小文字の用語を検索するクエリがあります。

実際には、小文字のフィルターを使用したindex_analyzerがありましたが、大文字と小文字を区別しない検索を実行できるように、 search_analyzerも追加したかったのです。

だから私はちょうどsearch_analyzerと同じアナライザーをマッピングに追加することを考えました

そのようにして、手動でElastic Searchにクエリを実行すると

検索用語が正しく小文字になっていることがわかりました

しかし、コードから実行する

  • 大文字の検索語を使用すると、ES はヒットを返しません ( search_analyzerが適用されていることを確認した場合でも)
  • 小文字の検索語を使用すると、ES は適切な結果ヒット数 (数百) を返します。

ケースとは関係なく同じ結果を得たいのですが。

コードでは、用語フィルターを使用してクエリを作成しているだけです。

私が間違っていることは何ですか?なぜ結果が得られないのですか?

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

sql - Query Analzyer で SQL Server CE テーブルを削除できないのはなぜですか?

両方を使用して SQL Server CE テーブルを削除しようとしました。

-と:

...Query Analyzer では、どちらの場合も、同じエラー メッセージが表示されます。

ここに画像の説明を入力

テーブルをドロップするのは簡単なはずですが、このテーブルは逆のハンプティ ダンプティのように跳ね返ります。

本当に消えるのに十分なほど強くドロップするには、何をする必要がありますか?「Nuke invHeader」?

けがに侮辱を加えるために、このコマンドが失敗した後 (テーブル名を指定する両方の「スタイル」)、クエリ アナライザーはシナプス接続を失ったようで、SQL/DDL ステートメントを編集できなくなります。再びシナプスに到達する前にハンドヘルド デバイスを起動します。

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

elasticsearch - 小文字フィルターを使用したカスタム アナライザーが期待どおりに動作しない

次のような単純なカスタム アナライザーがありますcustom_raw_analyzer

しかし、ランダムな文字列でテストを行ったところ、出力トークンは小文字ではありません:

結果:

誰でも理由を説明できますか?

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

elasticsearch - Elasticsearch で特定のクエリ間のスペースを無視するにはどうすればよいですか?

私のelasticsearchドキュメントには、次のNameようなエントリを持つフィールドがあります:

次のクエリでこのフィールドをクエリすると(「s」と「3」の間のスペースに注意してください) :

"Samsung Galaxy Duos 3"ではなく、関連する結果として返されます"Samsung Galaxy S3"

このようなタスクで私が気付くパターンは、任意の数字と任意の 1 つのアルファベット文字の間のスペースを無視して、クエリを作成することです。たとえば、"I-phone 5s"によっても返される必要があります"I-phone 5 s"

これを達成する良い方法はありますか?

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

java - ElasticSearch でフレーズを検索するためのアナライザー

ElasticSearch 1.5.2 を使用しています。検索エンジンでフレーズの検索を許可したい。

テキストが

read with section 114 of the Indian Penal Code

デフォルトのアナライザーを使用すると、検索クエリで結果を取得できません

section 114 penal code

そこで、アナライザーを追加しました:

次のように、ファイルのインデックスを作成しています(すでに受け入れ可能なjson形式になっています):

次のようにクエリを作成しmatchQueryました:

しかし、私はまだ結果を得ていません。どうすればよいか教えてください。

編集:実際には、このアナライザーからあらゆる種類の結果を取得しようとすると、ヒットしません...インデックスを作成したすべてのドキュメントに存在するクエリ「セクション」を使用しても、結果は得られませんが、検索にデフォルトのアナライザーを使用すると、いくつかの結果が得られます。それで、このアナライザーは機能していませんか、それとも何ですか?

編集:サンプルドキュメント、

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

java - ルセン。テキスト内の単語ごとにいくつかのトークンをインデックス化する

私は lucene 3.5 をSpanishAnalyzerで使用しています (それ自体は SpanishStemmerStandardTokenizerを使用しています)。
SpanishAnalyzer が "claramente" と "claro" などの単語を含むドキュメントをインデックス化すると、両方とも "clar" としてインデックス化されます。
この動作は理解されており、私のニーズに役立ちます。今日、クエリを実行する前に、Analyzer のtokenStream+incrementToken()を使用して検索語のトークンを取得し、それをインデックス付きドキュメントに対して検索します。私は QueryParser を使用していませんが、コードで lucene クエリ オブジェクトを作成しています。
ただし、SpanishAnalyzer の形態学的機能を失うことなく、正確な単語 (この例では claro) を検索する機能が必要です。
上記の手順 (tokenStream) をスキップして「claro」を直接検索できますが、「clar」としてインデックス付けされているため見つかりません。また、1 つの正確な単語と 1 つの通常の用語 (形態学的) を含むorを
使用する機能が必要なため、2 つの異なるアナライザーでフィールドを 2 回インデックス付けしたくありません。 それで…そして私は要点に達しています…トークナイザーまたはステマーまたはフィルター(?)を変更することを考えたので、インデックス作成時に、語幹が付けられたトークンと元のトークンの2つのトークンがインデックス付けされます。この場合は「claro " および "clar" 以降、クエリを実行するときに、正確な単語を使用するか、語幹の付いたトークンを使用するかを選択できます。 どのように (そしてどこで) それを行うことができるかを理解する助けが必要です。編集は Stemmer のどこかで行う必要があると思います。 PhraseQuerySpanNearQuery

ちなみに、使用時にテキスト内の単語ごとにいくつかのトークンを返すヘブライ語アナライザーでまったく同じことを行いますincrementToken()(ただし、ソースコードはありません)