1

EC2インスタンスでelasticsearch0.20.2を使用しています(16GB RAM、スワップが有効になっていません)。インデックスに登録されたドキュメントがたくさんあり、ファセット結果を実行しようとすると、ヒープスペースエラーが発生し、elasticsearchサーバーが使用できなくなります。Javaのヒープメモリを増やしていましたが、何も役に立ちません。だから私の質問は、ファセットが適用されるドキュメントの数を制限できますか?

これが私の設定とマッピングです:

my_settings = {
    'settings': {
        'analysis': {
            'analyzer': {
                'text_analyzer': {
                    'tokenizer': 'standard',
                    'filter': ['standard', 'lowercase']
                },
                'suggestions_analyzer': {
                    'tokenizer': 'standard',
                    'filter': ['suggestions_shingle']
                }
            },
            'filter': {
                'suggestions_shingle': {
                    'type': 'shingle',
                    'min_shingle_size': 2,
                    'max_shingle_size': 5
                }
            }
        }
    }
}

my_mapping = {
    'test-type':{
        'properties':{
            'publish_datetime': {'type': 'date'},
            'text': {
                'type': 'multi_field',
                'fields': {
                    'text': {'type': 'string', 'analyzer': 'text_analyzer', 'include_in_all': True},
                    'suggestions': {'type': 'string', 'analyzer': 'suggestions_analyzer', 'include_in_all': False}
                }
            }
        }
    }
}

私の検索クエリは次のとおりです。

query = {
    'filtered': {
        'filter' : {
            'limit' : {'value' : 10}
        },
        'query':{
            'prefix':{
                    'text.suggestions': 'wha'
            }
        },
    },
    'facets':{
        'text_suggestions':{
            'terms':{
                'field':'text.suggestions',
                'regex':'^%s.*' % 'wha',
                'size': 5
            }
        }
    },
    'size': 0
}

誰かが私たちと共有させてくれるファセットになるドキュメント番号を制限することに成功していますか?

4

1 に答える 1

2

いいえ、集計を実行するドキュメントの数を人為的に制限することはできません。その集計は明らかに正しくありません。ファセットは、発行するクエリ(および使用するfacet_filters)によって制限されます。

したがって、覚えておくべきいくつかの方法:

  • 一般に、ファセットはqueryElasticsearchに送信するユーザーによって制限されます
  • 直面しているフィールドの値がメモリに読み込まれます
  • アドホックファセットのメモリ不足エラーを防ぐためのいくつかの手法がありますが、それらは通常のユーザー公開の検索/ファセットには役立ちません

メーリングリストで事前に説明されているファセットのフィールドキャッシュサイズの見積もりを参照してください。

text.suggestionsあなたが投稿した質問に基づいて、あなたがフィールドでファセットを使って何をしようとしているのかはっきりしていませんか?

于 2013-01-21T08:02:34.547 に答える