遥测
Meilisearch 从用户处收集匿名数据,以改进我们的产品。 这可以随时停用,并且任何已收集的数据都可以按需删除。
我们使用哪些工具来收集和可视化数据?
我们使用 Segment,一个数据收集和管理平台,来收集使用数据。然后,我们将这些数据输入到 Amplitude,一个用于绘制数据和突出显示数据的工具,以便我们可以根据我们的需求构建可视化效果。
我们收集哪些类型的数据?
我们的数据收集侧重于以下类别
- 系统指标,例如运行 Meilisearch 的设备的技术规格、软件版本和操作系统
- 性能指标,例如搜索请求的成功率和平均延迟
- 使用情况指标,旨在评估我们的最新功能。 这些指标会随着每个新版本而变化
请参阅下文,查看我们目前收集的完整指标列表。
我们绝不会
- 识别或跟踪用户
- 收集个人信息,例如 IP 地址、电子邮件地址或网站 URL
- 存储从添加到 Meilisearch 实例的文档中的数据
为什么要收集遥测数据?
我们收集遥测数据只有两个原因:为了改进我们的产品,以及为了我们可以继续全职从事这个项目。
为了创造更好的产品,我们需要可靠的定量信息。 我们收集的数据有助于我们修复错误、评估功能的成功,并更好地了解用户的需求。
我们还需要证明人们实际上正在使用 Meilisearch。 使用情况指标有助于我们向投资者证明我们的存在是合理的,以便我们可以维持这个项目的活力。
为什么您应该信任我们?
不要信任我们——监督我们。 关于您的隐私数据,我们认为您对科技公司抱有不信任感是可以理解的,实际上也是明智的。因此,我们力求对数据收集保持完全透明,提供选择退出,并允许用户随时请求删除所有已收集的数据。在全球数据保护法律缺失的情况下,我们认为这是处理数据收集的唯一合乎道德的方式。
没有公司是完美的。如果您认为我们未能做到 100% 透明,或者收集的数据侵犯了您的个人隐私,请通过发送电子邮件至我们的专用帐户告知我们:privacy@meilisearch.com。同样,如果您发现您认为与我们相关的数据权利倡议或数据保护工具,请分享给我们。我们对这个主题充满热情,并非常认真地对待它。
如何禁用数据收集
可以随时禁用数据收集,方法是设置命令行选项或环境变量,然后重启 Meilisearch 实例。
meilisearch --no-analytics
有关配置 Meilisearch 的更多信息,请阅读我们的配置参考。
如何删除所有已收集的数据
我们 Meilisearch 团队提供了一个电子邮件地址,以便用户可以请求从我们所有的工具中完全删除他们的数据。
要做到这一点,请发送电子邮件至 privacy@meilisearch.com,其中包含为您的 Meilisearch 安装生成的唯一标识符(启动 Meilisearch 时的 Instance UID
)。有关管理我们收集的数据的任何问题也可以发送到此电子邮件地址。
所有已收集数据的详尽列表
每当触发收集某些数据的事件时,Meilisearch 不会立即发送它。相反,它会将其与其他数据捆绑在一个最大为 500kb
的批次中。批次每小时发送一次,或在达到 500kb
后发送——以先到者为准。这样做是为了提高性能并减少网络流量。
请注意!
此列表可能会随着 Meilisearch 的每个新版本而更改。这并不是因为我们想偷偷摸摸!而是因为当我们添加新功能时,我们需要收集额外的数据点来查看它们的表现。
指标名称 | 描述 | 示例 |
---|---|---|
context.app.version | Meilisearch 版本号 | 1.3.0 |
infos.env | --env /MEILI_ENV 的值 | production |
infos.db_path | 如果指定了 --db-path /MEILI_DB_PATH ,则为 true | true |
infos.import_dump | 如果指定了 --import-dump ,则为 true | true |
infos.dump_dir | 如果指定了 --dump-dir /MEILI_DUMP_DIR ,则为 true | true |
infos.ignore_missing_dump | 如果 --ignore-missing-dump 被激活,则为 true | true |
infos.ignore_dump_if_db_exists | 如果 --ignore-dump-if-db-exists 被激活,则为 true | true |
infos.import_snapshot | 如果指定了 --import-snapshot ,则为 true | true |
infos.schedule_snapshot | 如果设置了 --schedule_snapshot /MEILI_SCHEDULE_SNAPSHOT 的值,否则为 None | 86400 |
infos.snapshot_dir | 如果指定了 --snapshot-dir /MEILI_SNAPSHOT_DIR ,则为 true | true |
infos.ignore_missing_snapshot | 如果 --ignore-missing-snapshot 被激活,则为 true | true |
infos.ignore_snapshot_if_db_exists | 如果 --ignore-snapshot-if-db-exists 被激活,则为 true | true |
infos.http_addr | 如果指定了 --http-addr /MEILI_HTTP_ADDR ,则为 true | true |
infos.http_payload_size_limit | --http-payload-size-limit /MEILI_HTTP_PAYLOAD_SIZE_LIMIT 的值,以字节为单位 | 336042103 |
infos.log_level | --log-level /MEILI_LOG_LEVEL 的值 | debug |
infos.max_indexing_memory | --max-indexing-memory /MEILI_MAX_INDEXING_MEMORY 的值,以字节为单位 | 336042103 |
infos.max_indexing_threads | --max-indexing-threads /MEILI_MAX_INDEXING_THREADS 的值,为整数 | 4 |
infos.log_level | --log-level /MEILI_LOG_LEVEL 的值 | debug |
infos.ssl_auth_path | 如果指定了 --ssl-auth-path /MEILI_SSL_AUTH_PATH ,则为 true | false |
infos.ssl_cert_path | 如果指定了 --ssl-cert-path /MEILI_SSL_CERT_PATH ,则为 true | false |
infos.ssl_key_path | 如果指定了 --ssl-key-path /MEILI_SSL_KEY_PATH ,则为 true | false |
infos.ssl_ocsp_path | 如果指定了 --ssl-ocsp-path /MEILI_SSL_OCSP_PATH ,则为 true | false |
infos.ssl_require_auth | --ssl-require-auth /MEILI_SSL_REQUIRE_AUTH 的值,为布尔值 | false |
infos.ssl_resumption | 如果指定了 --ssl-resumption /MEILI_SSL_RESUMPTION ,则为 true | false |
infos.ssl_tickets | 如果指定了 --ssl-tickets /MEILI_SSL_TICKETS ,则为 true | false |
system.distribution | Meilisearch 启动所在的发行版 | Arch Linux |
system.kernel_version | Meilisearch 启动所在的内核版本 | 5.14.10 |
system.cores | 核心数 | 24 |
system.ram_size | 总 RAM 容量。以 KB 表示 | 16777216 |
system.disk_size | 最大磁盘的总容量。以 Bytes 表示 | 1048576000 |
system.server_provider | MEILI_SERVER_PROVIDER 环境变量的值 | AWS |
stats.database_size | 数据库大小。以 Bytes 表示 | 2621440 |
stats.indexes_number | 索引数量 | 2 |
start_since_days | 实例启动以来的天数 | 365 |
user_agent | API 调用期间遇到的 User-agent 标头 | ["Meilisearch Ruby (2.1)", "Ruby (3.0)"] |
requests.99th_response_time | 最快的 99% 成功搜索请求中的最高延迟 | 57ms |
requests.total_succeeded | 成功请求的总数 | 3456 |
requests.total_failed | 失败请求的总数 | 24 |
requests.total_received | 收到的搜索请求总数 | 3480 |
requests.total_degraded | 达到搜索时间截断后取消的搜索总数 | 100 |
requests.total_used_negative_operator | 使用否定词或否定短语运算符的搜索计数 | 173 |
sort.with_geoPoint | 如果指定了排序规则 _geoPoint ,则为 true | true |
sort.avg_criteria_number | 包含 sort 参数的所有搜索请求中排序标准的平均数量 | 2 |
filter.with_geoBoundingBox | 如果指定了过滤器规则 _geoBoundingBox ,则为 true | false |
filter.with_geoRadius | 如果指定了过滤器规则 _geoRadius ,则为 true | false |
filter.most_used_syntax | 包含 filter 参数的所有搜索请求中最常用的过滤器语法 | string |
q.max_terms_number | 为 q 参数给出的最高词条数 | 5 |
pagination.max_limit | 为 limit 参数给出的最高值 | 60 |
pagination.max_offset | 为 offset 参数给出的最高值 | 1000 |
formatting.max_attributes_to_retrieve | 要检索的最大属性数 | 100 |
formatting.max_attributes_to_highlight | 要高亮显示的最大属性数 | 100 |
formatting.highlight_pre_tag | 如果指定了 highlightPreTag ,则为 true | false |
formatting.highlight_post_tag | 如果指定了 highlightPostTag ,则为 true | false |
formatting.max_attributes_to_crop | 要裁剪的最大属性数 | 100 |
formatting.crop_length | 如果指定了 cropLength ,则为 true | false |
formatting.crop_marker | 如果指定了 cropMarker ,则为 true | false |
formatting.show_matches_position | 如果此批次中使用了 showMatchesPosition ,则为 true | false |
facets.avg_facets_number | 平均 facets 数量 | 10 |
primary_key | 显式设置时主键的名称。否则为 null | id |
payload_type | 在 Content-Type 标头中遇到的所有值,包括无效值 | ["application/json", "text/plain", "application/x-ndjson"] |
index_creation | 如果文档添加或更新请求触发了索引创建,则为 true | true |
ranking_rules.words_position | words 排名规则的位置(如果有),否则为 null | 1 |
ranking_rules.typo_position | typo 排名规则的位置(如果有),否则为 null | 2 |
ranking_rules.proximity_position | proximity 排名规则的位置(如果有),否则为 null | 3 |
ranking_rules.attribute_position | attribute 排名规则的位置(如果有),否则为 null | 4 |
ranking_rules.sort_position | sort 排名规则的位置 | 5 |
ranking_rules.exactness_position | exactness 排名规则的位置(如果有),否则为 null | 6 |
ranking_rules.values | 表示不包含自定义 asc-desc 规则的排名规则的字符串 | "words, typo, attribute, sort, exactness" |
sortable_attributes.total | 可排序属性的数量 | 3 |
sortable_attributes.has_geo | 如果 _geo 被设置为可排序属性,则为 true | true |
filterable_attributes.total | 可筛选属性的数量 | 3 |
filterable_attributes.has_geo | 如果 _geo 被设置为可筛选属性,则为 true | false |
filterable_attributes.has_patterns | 如果 filterableAttributes 使用了 attributePatterns ,则为 true | true |
searchable_attributes.total | 可搜索属性的数量 | 4 |
searchable_attributes.with_wildcard | 如果 * 被指定为可搜索属性,则为 true | false |
per_task_uid | 如果 uids 用于获取特定的任务资源,则为 true | true |
filtered_by_uid | 如果任务按 uids 查询参数筛选,则为 true | false |
filtered_by_index_uid | 如果任务按 indexUids 查询参数筛选,则为 true | false |
filtered_by_type | 如果任务按 types 查询参数筛选,则为 true | false |
filtered_by_status | 如果任务按 statuses 查询参数筛选,则为 true | false |
filtered_by_canceled_by | 如果任务按 canceledBy 查询参数筛选,则为 true | false |
filtered_by_before_enqueued_at | 如果任务按 beforeEnqueuedAt 查询参数筛选,则为 true | false |
filtered_by_after_enqueued_at | 如果任务按 afterEnqueuedAt 查询参数筛选,则为 true | false |
filtered_by_before_started_at | 如果任务按 beforeStartedAt 查询参数筛选,则为 true | false |
filtered_by_after_started_at | 如果任务按 afterStartedAt 查询参数筛选,则为 true | false |
filtered_by_before_finished_at | 如果任务按 beforeFinishedAt 查询参数筛选,则为 true | false |
filtered_by_after_finished_at | 如果任务按 afterFinishedAt 查询参数筛选,则为 true | false |
typo_tolerance.enabled | 如果启用了拼写容错,则为 true | true |
typo_tolerance.disable_on_attributes | 如果为 disableOnAttributes 定义了至少一个值,则为 true | false |
typo_tolerance.disable_on_words | 如果为 disableOnWords 定义了至少一个值,则为 true | false |
typo_tolerance.min_word_size_for_typos.one_typo | 为 minWordSizeForTypos.oneTypo 参数定义的值 | 5 |
typo_tolerance.min_word_size_for_typos.two_typos | 为 minWordSizeForTypos.twoTypos 参数定义的值 | 9 |
pagination.max_total_hits | 为 pagination.maxTotalHits 属性定义的值 | 1000 |
faceting.max_values_per_facet | 为 faceting.maxValuesPerFacet 属性定义的值 | 100 |
distinct_attribute.set | 如果指定了字段名称,则为 true | false |
distinct | 如果在聚合请求列表中指定了 distinct,则为 true | true |
proximity_precision.set | 如果已手动设置该设置,则为 true 。 | false |
proximity_precision.value | byWord 或 byAttribute 。 | byWord |
facet_search.set | facetSearch 已被用户更改 | true |
facet_search.value | 用户设置的 facetSearch 值 | true |
prefix_search.set | prefixSearch 已被用户更改 | true |
prefix_search.value | 用户设置的 prefixSearch 值 | indexingTime |
displayed_attributes.total | 显示的属性数 | 3 |
displayed_attributes.with_wildcard | 如果 * 被指定为显示的属性,则为 true | false |
stop_words.total | 停用词的数量 | 3 |
separator_tokens.total | 分隔符标记的数量 | 3 |
non_separator_tokens.total | 非分隔符标记的数量 | 3 |
dictionary.total | 字典中的单词数 | 3 |
synonyms.total | 同义词的数量 | 3 |
per_index_uid | 如果 uid 用于获取索引统计资源,则为 true | false |
searches.avg_search_count | 每次调用聚合事件收到的平均搜索查询数 | 4.2 |
searches.total_search_count | 为聚合事件收到的搜索查询总数 | 16023 |
indexes.avg_distinct_index_count | 每次调用聚合事件收到的平均查询索引数 | 1.2 |
indexes.total_distinct_index_count | 聚合事件的查询索引总数 | 6023 |
indexes.total_single_index | 仅查询一个索引时的调用总数 | 2007 |
matching_strategy.most_used_strategy | 最常用的单词匹配策略 | last |
infos.with_configuration_file | 如果实例是使用配置文件启动的,则为 true | false |
infos.experimental_composite_embedders | 如果此实例的 compositeEmbedders 功能设置为 true ,则为 true | false |
infos.experimental_contains_filter | 如果启用了 containsFilter 实验性功能,则为 true | false |
infos.experimental_edit_documents_by_function | 如果启用了 editDocumentsByFunction 实验性功能,则为 true | false |
infos.experimental_enable_metrics | 如果在启动时指定了 --experimental-enable-metrics ,则为 true | false |
infos.experimental_embedding_cache_entries | 配置的嵌入缓存大小 | 100 |
infos.experimental_replication_parameters | 如果在启动时指定了 --experimental-replication-parameters ,则为 true | false |
infos.experimental_reduce_indexing_memory_usage | 如果在启动时指定了 --experimental-reduce-indexing-memory-usage ,则为 true | false |
infos.experimental_logs_mode | human 或 json ,取决于指定的值 | human |
infos.experimental_enable_logs_route | 如果在启动时指定了 --experimental-enable-logs-route ,则为 true | false |
infos.gpu_enabled | 如果 Meilisearch 是使用 CUDA 支持编译的,则为 true | false |
swap_operation_number | 交换操作的数量 | 2 |
pagination.most_used_navigation | 最常用的搜索结果导航 | estimated |
per_document_id | 如果使用了 DELETE /indexes/:indexUid/documents/:documentUid 端点,则为 true | false |
per_filter | 如果使用了 POST /indexes/:indexUid/documents/fetch 、GET /indexes/:indexUid/documents/ 或 POST /indexes/:indexUid/documents/delete 端点,则为 true | false |
clear_all | 如果使用了 DELETE /indexes/:indexUid/documents 端点,则为 true | false |
per_batch | 如果使用了 POST /indexes/:indexUid/documents/delete-batch 端点,则为 true | false |
facets.total_distinct_facet_count | 为聚合事件查询的 distinct facets 总数 | false |
facets.additional_search_parameters_provided | 如果为聚合事件提供了额外的搜索参数,则为 true | false |
faceting.sort_facet_values_by_star_count | 如果所有字段都设置为按计数排序,则为 true | false |
faceting.sort_facet_values_by_total | 设置的不同值的数量 | 10 |
scoring.show_ranking_score | 如果在聚合事件中使用了 showRankingScore ,则为 true | true |
scoring.show_ranking_score_details | 如果在聚合事件中使用了 showRankingScoreDetails ,则为 true | true |
scoring.ranking_score_threshold | 如果在聚合请求列表中指定了 rankingScoreThreshold,则为 true | true |
attributes_to_search_on.total_number_of_uses | 设置了 attributesToSearchOn 的查询总数 | 5 |
vector.max_vector_size | 在此批次中为 vector 参数给出的最高维度数 | 1536 |
vector.retrieve_vectors | 如果在此批次中使用了 retrieve_vectors 参数,则为 true 。 | false |
hybrid.enabled | 如果在聚合事件中使用了混合搜索,则为 true | true |
hybrid.semantic_ratio | 如果在此批次中使用了 semanticRatio,则为 true ,否则为 false | false |
embedders.total | 定义的 embedders 数量 | 2 |
embedders.sources | 表示不同提供的源的数组 | ["huggingFace", "userProvided"] |
embedders.document_template_used | 一个布尔值,指示提供的 embedders 之一是否定义了自定义模板 | true |
embedders.document_template_max_bytes | 一个值,指示所有 embedder 中 document TemplateMaxBytes 的最大值 | 400 |
embedders.binary_quantization_used | 如果用户更新了嵌入设置的二进制量化字段,则为 true | false |
infos.task_queue_webhook | 如果实例是使用任务队列 webhook 启动的,则为 true | false |
infos.experimental_search_queue_size | 搜索队列的大小 | 750 |
infos.experimental_dumpless_upgrade | 如果实例是使用该参数启动的,则为 true | true |
locales | 与 /search 和 /settings 路由一起使用的语言区域列表 | ["fra", "eng"] |
federation.use_federation | 当至少一个 multi-search 请求包含顶级 federation 对象时,为 true | false |
network_has_self | 如果 network 对象具有非空 self 字段,则为 true | true |
network_size | 声明的 remotes 数量 | 0 |
network | 当启用 network 实验性功能时,为 true | true |
experimental_network | 当启用 network 实验性功能时,为 true | true |
remotes.total_distinct_remote_count | 聚合的每个搜索请求中出现的 distinct remotes 数量之和 | 48 |
remotes.avg_distinct_remote_count | 聚合的搜索请求中出现的 distinct remotes 平均数量 | 2.33 |