我有一个用例,其中在ElasticSearch集群的每个文档中都有一个字段,在大多数情况下具有相同的值。我必须在这个字段上使用随输入搜索。我想检查在标记化过程中,如果多个文档中的字段值相同,比如100个文档中的字段X的值是“ABC”,是否为每个文档生成标记?希望确保我们不会因此更改而大幅增加elasticsearch集群大小
w8f9ii691#
一个很简单的测试...测试:-)这里有一个快速的例子,向您展示它是如何工作的。首先,我们创建一个带有单个completion字段的测试索引,并在其中索引一个文档。注意,它的行为与search_as_you_type字段类型相同。
completion
search_as_you_type
PUT test { "mappings": { "properties": { "text": { "type": "completion" } } } } POST test/_bulk {"index":{}} {"text": "Lorem ipsum dolor"}
在此之后,让我们检查索引的完成统计:
GET test/_stats?filter_path=**.completion => Returns { "_all" : { "primaries" : { "completion" : { "size_in_bytes" : 128 } }, "total" : { "completion" : { "size_in_bytes" : 256 } } }, "indices" : { "test" : { "primaries" : { "completion" : { "size_in_bytes" : 128 } }, "total" : { "completion" : { "size_in_bytes" : 256 } } } } }
然后,索引更多具有完全相同内容的文档:
POST test/_bulk {"index":{}} {"text": "Lorem ipsum dolor"} {"index":{}} {"text": "Lorem ipsum dolor"} {"index":{}} {"text": "Lorem ipsum dolor"} ... 100 times ... {"index":{}} {"text": "Lorem ipsum dolor"}
让我们再次获得统计数据,猜猜看,堆使用率增加,这应该可以回答您的问题:
GET test/_stats?filter_path=**.completion => Returns { "_all" : { "primaries" : { "completion" : { "size_in_bytes" : 665 } }, "total" : { "completion" : { "size_in_bytes" : 1330 } } }, "indices" : { "test" : { "primaries" : { "completion" : { "size_in_bytes" : 665 } }, "total" : { "completion" : { "size_in_bytes" : 1330 } } } } }
1条答案
按热度按时间w8f9ii691#
一个很简单的测试...测试:-)
这里有一个快速的例子,向您展示它是如何工作的。首先,我们创建一个带有单个
completion
字段的测试索引,并在其中索引一个文档。注意,它的行为与search_as_you_type
字段类型相同。在此之后,让我们检查索引的完成统计:
然后,索引更多具有完全相同内容的文档:
让我们再次获得统计数据,猜猜看,堆使用率增加,这应该可以回答您的问题: