問題タブ [elasticsearch-2.0]

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

elasticsearch - Querying Elasticsearch and using analyzers

I am using elasticsearch on the yii2 framework using the elasticsearch extension.

I have to index some location data in elasticsearch as follows:

  • id
  • countryName
  • stateName
  • cityName
  • addressName

I sould be able to find a location based on provided data such as:

  • where countryName='united states' and stateName='new york'
  • where cityName='broadway'
  • where countryName='united states' and stateName like '%york'

and it should be case insensitive.

Currently when I am doing a query, I don't get any results if the case does not match.

My mappings are:

And i added an analyzer:

When I do a query countryName='United States', I don't get anything, but if I do countryName='united states', I get the records that match

When I do countryName.raw='United States', I get records that match, but if it's lowercase I don't get anything.

For stateName, cityName and addressName, if I make a query like: stateName='New York' or change it to lowercase I do not get any results.

If I do for stateName.raw, cityName.raw and addressName.raw, it works like the countryName.raw

Can anyone help me with this?

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

elasticsearch - elasticsearch インデックス vs タイプ戦略

私はelasticsearchに慣れていないので、助けていただければ幸いです.

私の会社にはメタデータリポジトリがあり
、リポジトリはこのように構成され
ています.さまざまなタイプのエンティティのグループがあります.

約 15 のグループ、合計で約 1500 のエンティティ
各エンティティ名は一意であり、重複はありません
各エンティティの基本データ (フラグ、テキストの説明など)
各エンティティには平均で約 100 ~ のフィールドがあります。

フィールドと言うとき、基本データを意味するのではなく、各フィールドにブールフラグ、テキスト説明などを含むエンティティ内の論理フィールドを意味します...
フィールドのグループもあります(約5)

さらに、リポジトリにはバージョンがあり、毎月新しいバージョン

があります。問題は、 elasticsearch に最適に適合 するようにこの構造をモデル化する最善の方法は何ですか?elasticsearch

でのデータの使用法は、名前とグループでエンティティを検索し、すべてを取得することです。エンティティのフィールド、名前とグループでフィールドを検索、名前とグループでエンティティ内のフィールドを検索
、次のモデルを考えました:

エンティティ (フィールドではない) に関するデータがあります

。例: リポジトリのバージョン 1、groupAのエンティティ 1

各エンティティのフィールドは次のようになります

例: entity1 のバージョン 1、フィールド グループ A の field1

これはリポジトリをモデル化する良い方法ですか?, この方法でインデックスの割り当てを作成すると思います.より多くのタイプを持つようにモデル化する必要がありますか? より多くのタイプではなく、より多くのインデックスの利点は何ですか?

ご覧のとおり、私はelasticsearchを初めて使用し、学習資料の割り当てを見つけることができなかったので、少し無知に感じますO:

助けてくれてありがとう:D

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

elasticsearch - モバイル内部メモリ検索用のエラスティック検索 (8GB、16GB など)

私のelasticsearch dbには、製品インデックスにフィールドがあります

次のサンプル文字列に対してこのフィールドを返す必要があります。

このためのカスタム アナライザーを作成するにはどうすればよいですか?

これはオートコンプリートまたはキー ストロークごとの検索ではないため、そのような検索に nGrams を使用する必要がありますか?

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

ruby-on-rails - レールでelasticsearchの特定のフィールドを返す

これは非常に簡単な問題のように思えますが、他のソリューションや Web サイトから試したすべてが機能していません。:p_sインデックスまたはクエリを実行:genderしたくない 3 つのフィールドが:part_of_speechあります。この記事の中ほどで、インデックス作成について述べてnoいますが、これがどこで発生するかは示していません。

用語管理者:

モデル:

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

elasticsearch - elaticsearch インデックス内の完全なドキュメントと部分的なクエリ文字列を一致させる

Elasticsearch のインデックスに追加された短いテキスト長のドキュメントを検索する必要があり、検索クエリがドキュメント テキストのいずれかと完全に一致する場合にのみ検索結果を取得したいと考えています。たとえば、これらがインデックスに追加された 2 つのドキュメントであるとします。

1.) { name: "アルファベータ" }

2.) { name: "ガンマデルタ" }

クエリ文字列が -

ドキュメントのすべてのトークンがそのまま一致するため、最初のクエリよりも最初のドキュメントを返す必要があります。ただし、すべてのトークンがクエリ文字列にそのまま存在するドキュメントは存在しないため、2 番目のクエリはドキュメントを返すべきではありません。

注: 結果は、ドキュメントに入力されたテキストのすべてのトークンがクエリ文字列に存在する場合にのみ返されます。