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