遥测

    为了改进我们的产品,Meilisearch 会从用户那里收集匿名数据。可以随时停用,并且任何已收集的数据都可以按要求删除

    我们使用哪些工具来收集和可视化数据?

    我们使用 Segment,一个用于数据收集和管理的平台来收集使用数据。然后,我们将这些数据输入到 Amplitude,一个用于绘制和突出显示数据的工具,以便我们可以根据需要构建可视化效果。

    我们收集哪些类型的数据?

    我们的数据收集侧重于以下类别

    请参阅下文,查看我们目前收集的所有已收集指标的完整列表

    我们绝不会

    为什么要收集遥测数据?

    我们收集遥测数据仅出于两个原因:为了改进我们的产品,以及为了我们能够全职继续从事这个项目。

    为了创造更好的产品,我们需要可靠的定量信息。我们收集的数据可以帮助我们修复错误、评估功能是否成功,并更好地了解用户的需求。

    我们还需要证明确实有人在使用 Meilisearch。使用指标有助于我们向投资者证明我们的存在是合理的,以便我们能够维持这个项目的运转。

    您为什么要信任我们?

    不要信任我们——监督我们。 我们认为,在涉及您的私人数据时,不信任科技公司是可以理解的,而且实际上是明智的。这就是为什么我们努力保持 关于数据收集的完全透明,提供 选择退出 的方式,并允许用户随时 请求删除所有已收集的数据。在全球数据保护法律缺失的情况下,我们认为这是处理数据收集的唯一合乎道德的方式。

    没有公司是完美的。如果您认为我们的透明度不够 100%,或者收集的数据侵犯了您的个人隐私,请通过电子邮件告知我们的专用帐户:[email protected]。同样,如果您发现您认为与我们相关的数据权利倡议或数据保护工具,请分享给我们。我们对这个主题充满热情,并非常重视它。

    如何禁用数据收集

    可以通过设置命令行选项或环境变量,然后重启 Meilisearch 实例来随时禁用数据收集。

    meilisearch --no-analytics
    

    有关配置 Meilisearch 的更多信息,请阅读我们的 配置参考

    如何删除所有收集的数据

    我们 Meilisearch 团队提供了一个电子邮件地址,以便用户可以请求从我们的所有工具中完全删除他们的数据。

    要执行此操作,请发送电子邮件至 [email protected],其中包含为您的 Meilisearch 安装生成的唯一标识符(启动 Meilisearch 时的 Instance UID)。有关我们收集的数据管理的任何问题也可以发送到此电子邮件地址。

    所有收集的数据的详尽列表

    每当触发收集某些数据的事件时,Meilisearch 不会立即发送它。相反,它会将其与其他数据捆绑到一个最大为 500kb 的批次中。批次每小时发送一次,或在达到 500kb 后发送,以先发生者为准。这样做是为了提高性能并减少网络流量。

    请注意!

    此列表可能会随着 Meilisearch 的每个新版本而更改。这不是因为我们想偷偷摸摸!而是因为当我们添加新功能时,我们需要收集额外的数据点以查看它们的性能。

    指标名称描述示例
    context.app.versionMeilisearch 版本号0.23.0
    infos.env--env/MEILI_ENV 的值production
    infos.db_path如果指定了 --db-path/MEILI_DB_PATH,则为 true,否则为 falsetrue
    infos.import_dump如果指定了 --import-dump,则为 true,否则为 falsetrue
    infos.dump_dir如果指定了 --dump-dir/MEILI_DUMP_DIR,则为 true,否则为 falsetrue
    infos.ignore_missing_dump如果激活了 --ignore-missing-dump,则为 true,否则为 falsetrue
    infos.ignore_dump_if_db_exists如果激活了 --ignore-dump-if-db-exists,则为 true,否则为 falsetrue
    infos.import_snapshot如果指定了 --import-snapshot,则为 true,否则为 falsetrue
    infos.schedule_snapshot如果启用了计划快照,则为 --schedule_snapshot/MEILI_SCHEDULE_SNAPSHOT 的值,否则为 None86400
    infos.snapshot_dir如果指定了 --snapshot-dir/MEILI_SNAPSHOT_DIR,则为 true,否则为 falsetrue
    infos.ignore_missing_snapshot如果激活了 --ignore-missing-snapshot,则为 true,否则为 falsetrue
    infos.ignore_snapshot_if_db_exists如果激活了 --ignore-snapshot-if-db-exists,则为 true,否则为 falsetrue
    infos.http_addr如果指定了 --http-addr/MEILI_HTTP_ADDR,则为 true,否则为 falsetrue
    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,否则为 falsefalse
    infos.ssl_cert_path如果指定了 --ssl-cert-path/MEILI_SSL_CERT_PATH,则为 true,否则为 falsefalse
    infos.ssl_key_path如果指定了 --ssl-key-path/MEILI_SSL_KEY_PATH,则为 true,否则为 falsefalse
    infos.ssl_ocsp_path如果指定了 --ssl-ocsp-path/MEILI_SSL_OCSP_PATH,则为 true,否则为 falsefalse
    infos.ssl_require_auth--ssl-require-auth/MEILI_SSL_REQUIRE_AUTH 的值,以布尔值表示false
    infos.ssl_resumption如果指定了 --ssl-resumption/MEILI_SSL_RESUMPTION,则为 true,否则为 falsefalse
    infos.ssl_tickets如果指定了 --ssl-tickets/MEILI_SSL_TICKETS,则为 true,否则为 falsefalse
    system.distributionMeilisearch 启动时所在的发行版Arch Linux
    system.kernel_versionMeilisearch 启动时所在的内核版本5.14.10
    system.cores核心数24
    system.ram_size总 RAM 容量。以 KB 表示16777216
    system.disk_size最大磁盘的总容量。以 Bytes 表示1048576000
    system.server_provider用户可以通过填写 MEILI_SERVER_PROVIDER 环境变量告诉我们 Meilisearch 托管在哪个提供商上。我们的云部署脚本也会填写此变量,例如,GCP cloud-config.yamlGCP
    stats.database_size数据库大小。以 Bytes 表示2621440
    stats.indexes_number索引数2
    start_since_days实例启动以来的天数365
    user_agentAPI 调用期间遇到的用户代理头["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,否则为 falsetrue
    sort.avg_criteria_number所有包含 sort 参数的搜索请求中排序标准的平均数量2
    filter.with_geoBoundingBox如果指定了过滤规则 _geoBoundingBox,则为 true,否则为 falsefalse
    filter.with_geoRadius如果指定了过滤规则 _geoRadius,则为 true,否则为 falsefalse
    filter.most_used_syntax所有包含 filter 参数的搜索请求中最常用的过滤器语法string
    q.max_terms_numberq 参数给出的最大术语数5
    pagination.max_limitlimit 参数给出的最大值60
    pagination.max_offsetoffset 参数给出的最大值1000
    formatting.max_attributes_to_retrieve要检索的最大属性数100
    formatting.max_attributes_to_highlight要突出显示的最大属性数100
    formatting.highlight_pre_tag如果指定了 highlightPreTag,则为 true,否则为 falsefalse
    formatting.highlight_post_tag如果指定了 highlightPostTag,则为 true,否则为 falsefalse
    formatting.max_attributes_to_crop要裁剪的最大属性数100
    formatting.crop_length如果指定了 cropLength,则为 true,否则为 falsefalse
    formatting.crop_marker如果指定了 cropMarker,则为 true,否则为 falsefalse
    formatting.show_matches_position如果在此批次中使用了 showMatchesPosition,则为 true,否则为 falsefalse
    facets.avg_facets_number刻面的平均数量10
    primary_key在文档添加、文档更新、索引创建或索引更新中显式设置的主键名称。否则为 nullid
    payload_typeContent-Type 标头中遇到的所有值,包括无效的值["application/json", "text/plain", "application/x-ndjson"]
    index_creation如果文档添加或更新请求触发了索引创建,则为 true,否则为 falsetrue
    ranking_rules.words_position如果有的话,words 排名规则的位置,否则为 null1
    ranking_rules.typo_position如果有的话,typo 排名规则的位置,否则为 null2
    ranking_rules.proximity_position如果有的话,proximity 排名规则的位置,否则为 null3
    ranking_rules.attribute_position如果有的话,attribute 排名规则的位置,否则为 null4
    ranking_rules.sort_positionsort 排名规则的位置5
    ranking_rules.exactness_position如果有的话,exactness 排名规则的位置,否则为 null6
    ranking_rules.values一个字符串,表示不包含自定义升降序规则的排名规则"words, typo, attribute, sort, exactness"
    sortable_attributes.total可排序属性的数量3
    sortable_attributes.has_geo如果 _geo 被设置为可排序属性,则为 true,否则为 falsetrue
    filterable_attributes.total可筛选属性的数量3
    filterable_attributes.has_geo如果 _geo 被设置为可筛选属性,则为 true,否则为 falsefalse
    searchable_attributes.total可搜索属性的数量4
    searchable_attributes.with_wildcard如果 * 被指定为可搜索属性,则为 true,否则为 falsefalse
    per_task_uid如果使用 uids 来获取特定的任务资源,则为 true,否则为 falsetrue
    filtered_by_uid如果任务是通过 uids 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_index_uid如果任务是通过 indexUids 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_type如果任务是通过 types 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_status如果任务是通过 statuses 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_canceled_by如果任务是通过 canceledBy 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_before_enqueued_at如果任务是通过 beforeEnqueuedAt 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_after_enqueued_at如果任务是通过 afterEnqueuedAt 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_before_started_at如果任务是通过 beforeStartedAt 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_after_started_at如果任务是通过 afterStartedAt 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_before_finished_at如果任务是通过 beforeFinishedAt 查询参数筛选的,则为 true,否则为 falsefalse
    filtered_by_after_finished_at如果任务是通过 afterFinishedAt 查询参数筛选的,则为 true,否则为 falsefalse
    typo_tolerance.enabled如果启用错别字容错,则为 true,否则为 falsetrue
    typo_tolerance.disable_on_attributes如果至少为一个 disableOnAttributes 定义了值,则为 true,否则为 falsefalse
    typo_tolerance.disable_on_words如果至少为一个 disableOnWords 定义了值,则为 true,否则为 falsefalse
    typo_tolerance.min_word_size_for_typos.one_typominWordSizeForTypos.oneTypo 参数定义的值5
    typo_tolerance.min_word_size_for_typos.two_typosminWordSizeForTypos.twoTypos 参数定义的值9
    pagination.max_total_hitspagination.maxTotalHits 属性定义的值1000
    faceting.max_values_per_facetfaceting.maxValuesPerFacet 属性定义的值100
    distinct_attribute.set如果指定了字段名称,则为 true,否则为 falsefalse
    distinct一个布尔值,指示是否在请求的聚合列表中指定了 distinct。true
    proximity_precision.set如果该设置已手动设置,则为 true,否则为 falsefals`
    proximity_precision.valuebyWordbyAttribute"byWord"
    facet_search.setfacetSearch 已被用户更改true
    facet_search.value用户设置的 facetSearchtrue
    prefix_search.setprefixSearch 已被用户更改true
    prefix_search.value用户设置的 prefixSearch"indexingTime"
    displayed_attributes.total显示的属性的数量3
    displayed_attributes.with_wildcard如果 * 被指定为显示的属性,则为 true,否则为 falsefalse
    stop_words.total停用词的数量3
    separator_tokens.total分隔符标记的数量3
    non_separator_tokens.total非分隔符标记的数量3
    dictionary.total字典中的单词数量3
    synonyms.total同义词的数量3
    per_index_uid如果 uid 用于获取索引统计资源,则为 true,否则为 falsefalse
    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,否则为 falsefalse
    infos.experimental_contains_filter如果启用了 containsFilter 实验性功能,则为 truefalse
    infos.experimental_edit_documents_by_function如果启用了 editDocumentsByFunction 实验性功能,则为 truefalse
    infos.experimental_enable_metrics如果指定了 --experimental-enable-metrics/MEILI_EXPERIMENTAL_ENABLE_METRICS,则为 true,否则为 falsefalse
    infos.experimental_replication_parameters如果在启动时指定了 --experimental-replication-parameters/MEILI_EXPERIMENTAL_REPLICATION_PARAMETERS,则为 true,否则为 falsefalse
    infos.experimental_reduce_indexing_memory_usage如果在启动时指定了 --experimental-reduce-indexing-memory-usage/MEILI_EXPERIMENTAL_REDUCE_INDEXING_MEMORY_USAGE,则为 true,否则为 falsefalse
    infos.experimental_logs_mode根据指定的值,为 humanjsonhuman
    infos.experimental_enable_logs_route如果在启动时指定了 --experimental-enable-logs-route/MEILI_EXPERIMENTAL_ENABLE_LOGS_ROUTE,则为 true,否则为 falsefalse
    infos.gpu_enabled如果 Meilisearch 是使用 CUDA 支持编译的,则为 true,否则为 falsefalse
    swap_operation_number交换操作的数量2
    pagination.most_used_navigation最常用的搜索结果导航estimated
    per_document_id如果使用了 DELETE /indexes/:indexUid/documents/:documentUid 端点,则为 true,否则为 falsefalse
    per_filter如果使用了 POST /indexes/:indexUid/documents/fetchGET /indexes/:indexUid/documents/POST /indexes/:indexUid/documents/delete 端点,则为 true,否则为 falsefalse
    clear_all如果使用了 DELETE /indexes/:indexUid/documents 端点,则为 true,否则为 falsefalse
    per_batch如果使用了 POST /indexes/:indexUid/documents/delete-batch 端点,则为 true,否则为 falsefalse
    facets.total_distinct_facet_count聚合事件的查询的不同 facets 总数false
    facets.additional_search_parameters_provided如果为聚合事件提供了额外的搜索参数,则为 true,否则为 falsefalse
    faceting.sort_facet_values_by_star_count如果所有字段都设置为按计数排序,则为 true,否则为 falsefalse
    faceting.sort_facet_values_by_total设置的不同值的数量10
    scoring.show_ranking_score如果在聚合事件中使用了 showRankingScore,则为 true,否则为 falsetrue
    scoring.show_ranking_score_details如果在聚合事件中使用了 showRankingScoreDetails,则为 true,否则为 falsetrue
    scoring.ranking_score_threshold一个布尔值,指示是否在请求的聚合列表中指定了 rankingScoreThresholdtrue
    vector_store如果启用了向量存储功能,则为 true,否则为 falsetrue
    attributes_to_search_on.total_number_of_uses如果启用了向量存储功能,则为 true,否则为 falsetrue
    vector.max_vector_size此批次中为 vector 参数给出的最高维度数1536
    vector.retrieve_vectors如果在此批次中使用了 retrieve_vectors 参数,则为 true。false
    hybrid.enabled如果在聚合事件中使用了混合搜索,则为 true,否则为 falsetrue
    hybrid.semantic_ratio如果在此批次中使用了 semanticRatio,则为 true,否则为 falsefalse
    embedders.total定义的嵌入器数量2
    embedders.sources一个表示不同提供源的数组[“huggingFace”, “userProvided”]
    embedders.document_template_used一个布尔值,指示是否提供的某个嵌入器定义了自定义模板true
    embedders.document_template_max_bytes一个值,表示所有嵌入器的 document TemplateMaxBytes 的最大值400
    embedders.binary_quantization_used如果用户更新了嵌入设置的二进制量化字段,则为 truefalse
    infos.task_queue_webhook如果实例是使用任务队列 webhook 启动的,则为 true,否则为 falsefalse
    infos.experimental_search_queue_size搜索队列的大小750
    locales/search/settings 路由一起使用的区域设置列表[“fra”, “eng”]
    federation.use_federation如果来自上一个聚合的至少一个多搜索请求包含一个非空的顶级 federation 对象,则为 truefalse