设置

    使用 /settings 路由来为给定的索引自定义搜索设置。 您可以使用更新设置端点一次性修改所有索引设置,或者使用子路由配置单个设置。

    有关索引设置的概念性概述,请参阅索引说明。要了解有关索引配置基础知识的更多信息,请参阅索引配置教程

    设置界面

    Meilisearch Cloud 除了 /settings 路由外,还提供了一个用户友好的图形界面,用于管理索引设置。 Cloud 界面提供更直接和可见的反馈,并且在与搜索预览结合使用时,有助于调整相关性。

    设置对象

    默认情况下,设置对象如下所示。所有字段都是可修改的。

    {
      "displayedAttributes": [
        "*"
      ],
      "searchableAttributes": [
        "*"
      ],
      "filterableAttributes": [],
      "sortableAttributes": [],
      "rankingRules":
      [
        "words",
        "typo",
        "proximity",
        "attribute",
        "sort",
        "exactness"
      ],
      "stopWords": [],
      "nonSeparatorTokens": [],
      "separatorTokens": [],
      "dictionary": [],
      "synonyms": {},
      "distinctAttribute": null,
      "typoTolerance": {
        "enabled": true,
        "minWordSizeForTypos": {
          "oneTypo": 5,
          "twoTypos": 9
        },
        "disableOnWords": [],
        "disableOnAttributes": []
      },
      "faceting": {
        "maxValuesPerFacet": 100
      },
      "pagination": {
        "maxTotalHits": 1000
      },
      "proximityPrecision": "byWord",
      "facetSearch": true,
      "prefixSearch": "indexingTime",
      "searchCutoffMs": null
    }
    

    所有设置

    此路由允许您一次性检索、配置或重置索引的所有设置。

    获取设置

    GET/indexes/{index_uid}/settings

    获取索引的设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies/settings'
    响应:200 Ok
    {
      "displayedAttributes": [
        "*"
      ],
      "searchableAttributes": [
        "*"
      ],
      "filterableAttributes": [],
      "sortableAttributes": [],
      "rankingRules":
      [
        "words",
        "typo",
        "proximity",
        "attribute",
        "sort",
        "exactness"
      ],
      "stopWords": [],
      "nonSeparatorTokens": [],
      "separatorTokens": [],
      "dictionary": [],
      "synonyms": {},
      "distinctAttribute": null,
      "typoTolerance": {
        "enabled": true,
        "minWordSizeForTypos": {
          "oneTypo": 5,
          "twoTypos": 9
        },
        "disableOnWords": [],
        "disableOnAttributes": []
      },
      "faceting": {
        "maxValuesPerFacet": 100
      },
      "pagination": {
        "maxTotalHits": 1000
      },
      "proximityPrecision": "byWord",
      "facetSearch": true,
      "prefixSearch": "indexingTime",
      "searchCutoffMs": null
    }
    

    更新设置

    PATCH/indexes/{index_uid}/settings

    更新索引的设置。

    null 传递给索引设置将将其重置为其默认值。

    设置路由中的更新是部分的。这意味着在正文中未提供的任何参数将保持不变。

    如果提供的索引不存在,则会创建它。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    名称类型默认值描述
    词典字符串数组Meilisearch 应解析为单个术语的字符串列表
    displayedAttributes字符串数组所有属性:["*"]返回文档中显示的字段
    distinctAttribute字符串null搜索返回具有给定字段的不同(不同)值的文档
    faceting对象默认对象分面设置
    filterableAttributes字符串数组用作过滤器和分面的属性
    pagination对象默认对象分页设置
    proximityPrecision字符串"byWord"计算邻近度排名规则时的精度级别
    facetSearch布尔值true启用或禁用分面搜索功能
    prefixSearch字符串"indexingTime"Meilisearch 何时应仅返回与查询开头匹配的结果
    rankingRules字符串数组["words",
    "typo",
    "proximity",
    "attribute",
    "sort",
    "exactness"]
    按重要性顺序排列的排名规则列表
    searchableAttributes字符串数组所有属性:["*"]在其中搜索匹配的查询词的字段,按重要性顺序排序
    searchCutoffMs整数null,或 1500 毫秒搜索查询的最大持续时间
    separatorTokens字符串数组分隔一个术语开始和结束位置的字符列表
    nonSeparatorTokens字符串数组不分隔一个术语开始和结束位置的字符列表
    sortableAttributes字符串数组在对搜索结果进行排序时使用的属性
    stopWords字符串数组当出现在搜索查询中时,Meilisearch 会忽略的单词列表
    synonyms对象被视为相似的关联词列表
    typoTolerance对象默认对象错别字容错设置
    embedders对象集合默认对象执行基于含义的搜索查询所需的嵌入器

    示例

    curl \
      -X PATCH 'https://127.0.0.1:7700/indexes/movies/settings' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "rankingRules": [
          "words",
          "typo",
          "proximity",
          "attribute",
          "sort",
          "exactness",
          "release_date:desc",
          "rank:desc"
        ],
        "distinctAttribute": "movie_id",
        "searchableAttributes": [
          "title",
          "overview",
          "genres"
        ],
        "displayedAttributes": [
          "title",
          "overview",
          "genres",
          "release_date"
        ],
        "stopWords": [
          "the",
          "a",
          "an"
        ],
        "sortableAttributes": [
          "title",
          "release_date"
        ],
        "synonyms": {
          "wolverine": [
            "xmen",
            "logan"
        ],
          "logan": ["wolverine"]
        },
        "typoTolerance": {
          "minWordSizeForTypos": {
            "oneTypo": 8,
            "twoTypos": 10
          },
          "disableOnAttributes": ["title"]
        },
        "pagination": {
          "maxTotalHits": 5000
        },
        "faceting": {
          "maxValuesPerFacet": 200
        },
        "searchCutoffMs": 150
      }'
    警告

    如果 Meilisearch 在更新请求中的任何设置时遇到错误,它会立即停止处理请求并返回错误消息。 在这种情况下,数据库设置保持不变。 返回的错误消息将仅针对遇到的第一个错误。

    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置设置

    DELETE/indexes/{index_uid}/settings

    将索引的所有设置重置为其默认值

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies/settings'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    词典

    允许用户通过添加用户定义的术语的补充词典来指示 Meilisearch 将字符串组视为单个术语。

    这在处理包含许多特定领域单词的数据集以及单词不由空格分隔的语言(例如日语)时特别有用。

    自定义词典在一些使用空格分隔语言的用例中也很有用,例如具有诸如 "J. R. R. Tolkien""W. E. B. Du Bois" 之类的名称的数据集。

    提示

    用户定义的词典可以与同义词一起使用。 将 Meilisearch 配置为作者的首字母的不同拼写返回相同的结果可能很有用

    "dictionary": ["W. E. B.", "W.E.B."],
    "synonyms": {
      "W. E. B.": ["W.E.B."],
      "W.E.B.": ["W. E. B."]
    }
    

    获取词典

    GET/indexes/{index_uid}/settings/dictionary

    获取索引的用户定义词典。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/books/settings/dictionary'
    响应:200 OK
    []
    

    更新词典

    PUT/indexes/{index_uid}/settings/dictionary

    更新索引的用户定义词典。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    ["J. R. R.", "W. E. B."]
    

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/books/settings/dictionary' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        "J. R. R.",
        "W. E. B."
      ]'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2023-09-11T15:39:06.073314Z"
    }
    

    使用返回的 taskUid 获取有关任务状态的更多详细信息。

    重置词典

    DELETE/indexes/{index_uid}/settings/dictionary

    将索引的词典重置为其默认值 []

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/books/settings/dictionary'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:53:32.863107Z"
    }
    

    使用返回的 taskUid 获取有关任务状态的更多详细信息。

    显示的属性

    添加到 displayedAttributes 列表的属性会显示在搜索结果中。 displayedAttributes 仅影响搜索端点。它对使用 POST 获取文档使用 GET 获取文档端点没有影响。

    默认情况下,displayedAttributes 数组等于数据集中的所有字段。此行为由值 ["*"] 表示。

    要了解有关显示属性的更多信息,请参阅我们的专门指南。

    获取显示的属性

    GET/indexes/{index_uid}/settings/displayed-attributes

    获取索引的显示属性。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies/settings/displayed-attributes'
    响应:200 Ok
    [
      "title",
      "overview",
      "genres",
      "release_date.year"
    ]
    

    更新显示的属性

    PUT/indexes/{index_uid}/settings/displayed-attributes

    更新索引的显示属性。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    [<String>, <String>, …]
    

    一个字符串数组。 每个字符串都应是所选索引中存在的属性。

    如果属性包含一个对象,您可以使用点表示法来指定其一个或多个键,例如,"displayedAttributes": ["release_date.year"]

    警告

    如果该字段不存在,则不会引发错误。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/displayed-attributes' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        "title",
        "overview",
        "genres",
        "release_date"
      ]'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置显示的属性

    DELETE/indexes/{index_uid}/settings/displayed-attributes

    将索引的显示属性重置为默认值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies/settings/displayed-attributes'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    唯一属性

    唯一属性是一个字段,其值在返回的文档中始终是唯一的。

    警告

    更新唯一属性将重新索引索引中的所有文档,这可能需要一些时间。我们建议先更新索引设置,然后再添加文档,因为这会减少 RAM 消耗。

    要了解有关唯一属性的更多信息,请参阅我们的专门指南。

    获取唯一属性

    GET/indexes/{index_uid}/settings/distinct-attribute

    获取索引的唯一属性。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/shoes/settings/distinct-attribute'
    响应:200 Ok
    "skuid"
    

    更新唯一属性

    PUT/indexes/{index_uid}/settings/distinct-attribute

    更新索引的唯一属性字段。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    <String>
    

    一个字符串。该字符串应是所选索引中存在的属性。

    如果属性包含一个对象,您可以使用点表示法将其一个或多个键设置为此设置的值,例如,"distinctAttribute": "product.skuid"

    警告

    如果该字段不存在,则不会引发错误。

    要了解有关唯一属性的更多信息,请参阅我们的专门指南。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/shoes/settings/distinct-attribute' \
      -H 'Content-Type: application/json' \
      --data-binary '"skuid"'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置唯一属性

    DELETE/indexes/{index_uid}/settings/distinct-attribute

    将索引的唯一属性重置为其默认值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/shoes/settings/distinct-attribute'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    分面

    使用 Meilisearch,您可以创建分面搜索界面。此设置允许您

    要了解有关分面的更多信息,请参阅我们的专用指南。

    分面对象

    名称类型默认值描述
    maxValuesPerFacet整数100每个分面返回的最大分面值数量。值按升序字母顺序排序
    sortFacetValuesBy对象所有分面值都按升序字母数字顺序排序("*": "alpha"自定义分面顺序以按降序值计数 (count) 或升序字母数字顺序 (alpha) 排序

    获取分面设置

    GET/indexes/{index_uid}/settings/faceting

    获取索引的分面设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/books/settings/faceting'
    响应:200 OK
    {
      "maxValuesPerFacet": 100,
      "sortFacetValuesBy": {
        "*": "alpha"
      }
    }
    

    更新分面设置

    PATCH/indexes/{index_uid}/settings/faceting

    部分更新索引的分面设置。正文中未提供的任何参数将保持不变。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    {
      "maxValuesPerFacet": <Integer>,
      "sortFacetValuesBy":{
          <String>: "count",
          <String>: "alpha"
      }
    }
    
    名称类型默认值描述
    maxValuesPerFacet整数100每个分面返回的最大分面值数量。值按升序字母顺序排序
    sortFacetValuesBy对象所有分面值都按升序字母数字顺序排序("*": "alpha"自定义分面顺序以按降序值计数 (count) 或升序字母数字顺序 (alpha) 排序

    假设查询的搜索结果包含 colors 分面的总共三个值:bluegreenred。如果您将 maxValuesPerFacet 设置为 2,则 Meilisearch 将仅在响应正文的 facetDistribution 对象中返回 bluegreen

    注意

    maxValuesPerFacet 设置为较高的值可能会对性能产生负面影响。

    示例

    以下代码示例将 maxValuesPerFacet 设置为 2,按降序计数对 genres 分面进行排序,并按升序字母数字顺序对所有其他分面进行排序

    curl \
      -X PATCH 'https://127.0.0.1:7700/indexes/books/settings/faceting' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "maxValuesPerFacet": 2,
        "sortFacetValuesBy": {
          "*": "alpha",
          "genres": "count"
        }
      }'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:56:44.991039Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    重置分面设置

    将索引的分面设置重置为其默认值。将 sortFacetValuesBy 设置为 null (--data-binary '{ "sortFacetValuesBy": null }'),将将其恢复为默认值 ("*": "alpha")。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/books/settings/faceting'
    响应:200 OK
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:53:32.863107Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    可过滤属性

    filterableAttributes 列表中的属性可以用作过滤器或分面。

    警告

    更新可过滤属性将重新索引索引中的所有文档,这可能需要一些时间。我们建议您先更新索引设置,然后再添加文档,因为这可以减少 RAM 消耗。

    要了解有关可过滤属性的更多信息,请参阅我们的专用指南。

    获取可过滤属性

    GET/indexes/{index_uid}/settings/filterable-attributes

    获取索引的可过滤属性。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies/settings/filterable-attributes'
    响应:200 Ok
    [
      "genres",
      "director",
      "release_date.year"
    ]
    

    更新可过滤属性

    PUT/indexes/{index_uid}/settings/filterable-attributes

    更新索引的可过滤属性列表。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    [<String>, <String>, …]
    

    一个字符串数组,包含可在查询时用作过滤器的属性。

    如果属性包含一个对象,您可以使用点表示法将其一个或多个键设置为此设置的值:"filterableAttributes": ["release_date.year"]

    警告

    如果该字段不存在,则不会引发错误。

    要了解有关可过滤属性的更多信息,请参阅我们的专用指南。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/filterable-attributes' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        "genres",
        "director"
      ]'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置可过滤属性

    DELETE/indexes/{index_uid}/settings/filterable-attributes

    将索引的可过滤属性列表重置回其默认值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies/settings/filterable-attributes'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    本地化属性

    默认情况下,Meilisearch 会自动检测文档中使用的语言。此设置允许您显式定义数据集中存在的语言以及这些语言所在的字段。

    本地化属性会影响 searchableAttributesfilterableAttributessortableAttributes

    为一个索引配置多种语言可能会对性能产生负面影响。

    localeslocalizedAttributes

    localeslocalizedAttributes 具有相同的目标:当 Meilisearch 的语言自动检测未按预期工作时,显式声明搜索中使用的语言。

    如果您认为 Meilisearch 由于查询文本而检测到错误的语言,请使用 locales 显式设置搜索语言。

    如果您认为 Meilisearch 由于文档而检测到错误的语言,请使用 localizedAttributes 在索引级别显式设置文档语言。

    为了完全控制 Meilisearch 在索引期间和搜索时检测语言的方式,请同时设置 localeslocalizedAttributes

    本地化属性对象

    localizedAttributes 必须是一个语言环境对象数组。其默认值为 []

    语言环境对象必须具有以下字段

    名称类型默认值描述
    locales字符串数组[]一个字符串列表,指示一个或多个 ISO-639 语言环境
    attribute_patterns字符串数组[]一个字符串列表,指示哪些字段对应于指定的语言环境

    locales

    Meilisearch 支持以下ISO-639-3 三字母 localesepoengruscmnspaporitabenfradeuukrkatarahinjpnhebyidpolamhjavkornobdanswefinturnldhuncesellbulbelmarkanronslvhrvsrpmkdlitlavesttamvieurdthagujuzbpanazeindtelpesmalorimyanepsinkhmtukakazulsnaafrlatslkcattglhye

    您也可以使用ISO-639-1 双字母等效项到受支持的 locales

    您也可以为 locales 分配一个空数组。在这种情况下,Meilisearch 将自动检测关联的 attributePatterns 的语言。

    attributePatterns

    属性模式可以以 * 通配符开头或结尾,以匹配多个字段:en_**-ar

    您也可以将 attributePatterns 设置为 *,在这种情况下,Meilisearch 会将所有字段视为好像它们位于关联的语言环境中。

    获取本地化属性设置

    GET/indexes/{index_uid}/settings/localized-attributes

    获取索引的本地化属性设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/INDEX_NAME/settings/localized-attributes'
    响应:200 OK
    {
      "localizedAttributes": [
        {"locales": ["jpn"], "attributePatterns": ["*_ja"]}
      ]
    }
    

    更新本地化属性设置

    PUT/indexes/{index_uid}/settings/localized-attributes

    更新索引的本地化属性设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    {
      "localizedAttributes": [
        {
         "locale": [<String>, …],
         "attributePatterns": [<String>, …],
        }
      ]
    }
    
    名称类型默认值描述
    localizedAttributes对象数组[]显式为一个或多个属性设置特定的语言环境

    示例

    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "INDEX_NAME",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:56:44.991039Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    重置分页设置

    RESET/indexes/{index_uid}/settings/localized-attributes

    将索引的本地化属性重置为其默认值

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "INDEX_NAME",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:53:32.863107Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    分页

    为了保护您的数据库免受恶意抓取,Meilisearch 对每次搜索返回的结果数量设置了 1000 个的默认限制。此设置允许您配置每次搜索返回的最大结果数。

    maxTotalHits 优先于搜索参数,例如 limitoffsethitsPerPagepage

    例如,如果您将 maxTotalHits 设置为 100,则无论为 offset 配置的值是多少,您都将无法访问超出 100 的搜索结果。

    要了解有关使用 Meilisearch 分页搜索结果的更多信息,请参阅我们的专用指南。

    分页对象

    名称类型默认值描述
    maxTotalHits整数1000Meilisearch 可以返回的最大搜索结果数

    获取分页设置

    GET/indexes/{index_uid}/settings/pagination

    获取索引的分页设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/books/settings/pagination'
    响应:200 OK
    {
      "maxTotalHits": 1000
    }
    

    更新分页设置

    PATCH/indexes/{index_uid}/settings/pagination

    部分更新索引的分页设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    {maxTotalHits: <Integer>}
    
    名称类型默认值描述
    maxTotalHits整数1000Meilisearch 可以返回的最大搜索结果数
    警告

    maxTotalHits 设置为高于默认值的值会对搜索性能产生负面影响。将 maxTotalHits 设置为超过 20000 的值可能会导致查询需要数秒才能完成。

    示例

    curl \
      -X PATCH 'https://127.0.0.1:7700/indexes/books/settings/pagination' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "maxTotalHits": 100
      }'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:56:44.991039Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    重置分页设置

    将索引的分页设置重置为其默认值

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/books/settings/pagination'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:53:32.863107Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    接近度精度

    计算单词之间的距离是一项资源密集型操作。降低此操作的精度可以显著提高性能,并且在大多数使用场景中对结果相关性的影响很小。Meilisearch 在根据邻近度对结果进行排名以及用户执行短语搜索时会使用单词距离。

    proximityPrecision 接受以下字符串值之一

    获取邻近度精度设置

    GET/indexes/{index_uid}/settings/proximity-precision

    获取索引的邻近度精度设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/books/settings/proximity-precision'
    响应:200 OK
    "byWord"
    

    更新邻近度精度设置

    PUT/indexes/{index_uid}/settings/proximity-precision

    更新索引的分页设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    "byWord"|"byAttribute"
    

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/books/settings/proximity-precision' \
      -H 'Content-Type: application/json' \
      --data-binary '"byAttribute"'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2023-04-14T15:50:29.821044Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    重置邻近度精度设置

    DELETE/indexes/{index_uid}/settings/proximity-precision

    将索引的邻近度精度设置重置为其默认值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/books/settings/proximity-precision'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2023-04-14T15:51:47.821044Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    处理用于分面搜索的可过滤属性是一项资源密集型操作。此功能默认启用,但禁用它可以加快索引速度。

    facetSearch 接受单个布尔值。如果设置为 false,它将禁用整个索引的分面搜索。如果禁用分面搜索后您尝试访问 /facet-search 端点,Meilisearch 将返回错误。

    获取分面搜索设置

    GET/indexes/{index_uid}/settings/facet-search

    获取索引的分面搜索设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/INDEX_UID/settings/facet-search'
    响应:200 OK
    {
      "facetSearch": true
    }
    

    更新分面搜索设置

    PUT/indexes/{index_uid}/settings/facet-search

    更新索引的分面搜索设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    <Boolean>
    

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/INDEX_UID/settings/facet-search' \
      -H 'Content-Type: application/json' \
      --data-binary 'false'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "INDEX_UID",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2024-07-19T22:33:18.523881Z"
    }
    

    使用返回的 taskUid 获取有关任务状态的更多详细信息。

    重置分面搜索设置

    DELETE/indexes/{index_uid}/settings/facet-search

    将索引的分面搜索重置为其默认设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/INDEX_UID/settings/facet-search'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "INDEX_UID",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2024-07-19T22:35:33.723983Z"
    }
    

    使用返回的 taskUid 获取有关任务状态的更多详细信息。

    前缀搜索是指 Meilisearch 匹配以特定查询词开头的文档,而不是仅匹配完全匹配的文档的过程。默认情况下,这是一项在索引期间发生的资源密集型操作。

    使用 prefixSearch 来更改前缀搜索的工作方式。它接受以下字符串之一

    获取前缀搜索设置

    GET/indexes/{index_uid}/settings/prefix-search

    获取索引的前缀搜索设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/INDEX_UID/settings/prefix-search'
    响应:200 OK
    {
      "prefixSearch": "indexingTime"
    }
    

    更新前缀搜索设置

    PUT/indexes/{index_uid}/settings/prefix-search

    更新索引的前缀搜索设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    "indexingTime" | "disabled"
    

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/INDEX_UID/settings/prefix-search' \
      -H 'Content-Type: application/json' \
      --data-binary '"disabled"'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "INDEX_UID",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2024-07-19T22:33:18.523881Z"
    }
    

    使用返回的 taskUid 获取有关任务状态的更多详细信息。

    重置前缀搜索设置

    DELETE/indexes/{index_uid}/settings/prefix-search

    将索引的前缀搜索重置为其默认设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/INDEX_UID/settings/facet-search'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "INDEX_UID",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2024-07-19T22:35:33.723983Z"
    }
    

    使用返回的 taskUid 获取有关任务状态的更多详细信息。

    排名规则

    排名规则是内置规则,可根据特定条件对搜索结果进行排名。它们按照在 rankingRules 数组中出现的顺序应用。

    要了解有关排名规则的更多信息,请参阅我们的专门指南。

    排名规则数组

    名称描述
    "words"按匹配的查询词数量降序对结果进行排序
    "typo"按拼写错误数量升序对结果进行排序
    "proximity"按匹配的查询词之间的距离升序对结果进行排序
    "attribute"根据属性排名顺序对结果进行排序
    "sort"根据查询时确定的参数对结果进行排序
    "exactness"根据匹配的单词与查询单词的相似性对结果进行排序

    默认顺序

    [
      "words",
      "typo",
      "proximity",
      "attribute",
      "sort",
      "exactness"
    ]
    

    获取排名规则

    GET/indexes/{index_uid}/settings/ranking-rules

    获取索引的排名规则。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies/settings/ranking-rules'
    响应:200 Ok
    [
      "words",
      "typo",
      "proximity",
      "attribute",
      "sort",
      "exactness",
      "release_date:desc"
    ]
    

    更新排名规则

    PUT/indexes/{index_uid}/settings/ranking-rules

    更新索引的排名规则。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    [<String>, <String>, …]
    

    一个包含按重要性顺序排列的排名规则的数组。

    要创建自定义排名规则,请给出属性,后跟冒号 (:) 和 asc(升序)或 desc(降序)。

    警告

    如果某些文档不包含自定义排名规则中定义的属性,则排名规则的应用是不确定的,并且搜索结果可能不会按您预期的方式排序。

    请确保自定义排名规则中使用的任何属性都存在于所有文档中。例如,如果您设置自定义排名规则 desc(year),请确保所有文档都包含属性 year

    要了解有关排名规则的更多信息,请参阅我们的专门指南。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/ranking-rules' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        "words",
        "typo",
        "proximity",
        "attribute",
        "sort",
        "exactness",
        "release_date:asc",
        "rank:desc"
      ]'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置排名规则

    DELETE/indexes/{index_uid}/settings/ranking-rules

    将索引的排名规则重置为其默认值

    提示

    重置排名规则与删除排名规则不同。要删除排名规则,请使用更新排名规则端点

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies/settings/ranking-rules'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    可搜索属性

    将搜索与 searchableAttributes 列表中的属性关联的值以查找匹配的查询词。列表的顺序还决定了属性排名顺序

    默认情况下,searchableAttributes 数组等于数据集中的所有字段。此行为由值 ["*"] 表示。

    警告

    更新可搜索属性将重新索引索引中的所有文档,这可能需要一些时间。我们建议先更新索引设置,然后再添加文档,因为这样可以减少 RAM 消耗。

    要了解有关可搜索属性的更多信息,请参阅我们的专门指南。

    获取可搜索属性

    GET/indexes/{index_uid}/settings/searchable-attributes

    获取索引的可搜索属性。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies/settings/searchable-attributes'
    响应:200 Ok
    [
      "title",
      "overview",
      "genres",
      "release_date.year"
    ]
    

    更新可搜索属性

    PUT/indexes/{index_uid}/settings/searchable-attributes

    更新索引的可搜索属性。

    警告

    由于实现错误,手动更新 searchableAttributes 将更改 JSON 响应中显示的文档字段的顺序。此行为不一致,将在未来的版本中修复。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    [<String>, <String>, …]
    

    字符串数组。每个字符串都应该是在所选索引中存在的属性。该数组应按重要性顺序给出:从最重要的属性到最不重要的属性。

    如果属性包含对象,则可以使用点表示法将其一个或多个键设置为此设置的值:"searchableAttributes": ["release_date.year"]

    警告

    如果该字段不存在,则不会引发错误。

    要了解有关可搜索属性的更多信息,请参阅我们的专门指南。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/searchable-attributes' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        "title",
        "overview",
        "genres"
      ]'

    在此示例中,在 title 中匹配的文档将比在 overview 中匹配的另一个文档更相关。

    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置可搜索属性

    DELETE/indexes/{index_uid}/settings/searchable-attributes

    将索引的可搜索属性重置为默认值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies/settings/searchable-attributes'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    搜索截止

    配置搜索查询的最大持续时间。Meilisearch 将中断任何花费时间超过截止值的搜索。

    默认情况下,Meilisearch 会在 1500 毫秒后中断搜索。

    获取搜索截止

    GET/indexes/{index_uid}/settings/search-cutoff-ms

    获取索引的搜索截止值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies/settings/search-cutoff-ms'
    响应:200 Ok
    null
    

    更新搜索截止

    PUT/indexes/{index_uid}/settings/search-cutoff-ms

    更新索引的搜索截止值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    150
    

    一个整数,表示以毫秒为单位的截止值。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/search-cutoff-ms' \
      -H 'Content-Type: application/json' \
      --data-binary '150'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2023-03-21T06:33:41.000000Z"
    }
    

    使用此 taskUid 获取有关任务状态的更多详细信息。

    重置搜索截止

    DELETE/indexes/{index_uid}/settings/search-cutoff-ms

    将索引的搜索截止值重置为其默认值 null。这转换为 1500 毫秒的截止。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies/settings/search-cutoff-ms'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2023-03-21T07:05:16.000000Z"
    }
    

    分隔符令牌

    将字符串配置为自定义分隔符令牌,指示单词的结尾和开头。

    separatorTokens 列表中的令牌将添加到Meilisearch 的默认分隔符列表之上。要从默认列表中删除分隔符,请使用nonSeparatorTokens 设置

    获取分隔符令牌

    GET/indexes/{index_uid}/settings/separator-tokens

    获取索引的自定义分隔符标记列表。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/articles/settings/separator-tokens'
    响应:200 Ok
    []
    

    更新分隔符标记

    PUT/indexes/{index_uid}/settings/separator-tokens

    更新索引的自定义分隔符标记列表。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    ["|", "&hellip;"]
    

    字符串数组,每个字符串表示一个单词分隔符。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/articles/settings/separator-tokens' \
      -H 'Content-Type: application/json'  \
      --data-binary '["|", "&hellip;"]'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    使用此 taskUid 获取有关任务状态的更多详细信息。

    重置分隔符标记

    DELETE/indexes/{index_uid}/settings/separator-tokens

    将索引的自定义分隔符标记列表重置为其默认值,[]

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/articles/settings/separator-tokens'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    使用此 taskUid 获取有关任务状态的更多详细信息。

    非分隔符标记

    从 Meilisearch 的默认单词分隔符列表中删除标记。

    获取非分隔符标记

    GET/indexes/{index_uid}/settings/non-separator-tokens

    获取索引的非分隔符标记列表。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/articles/settings/non-separator-tokens'
    响应:200 Ok
    []
    

    更新非分隔符标记

    PUT/indexes/{index_uid}/settings/non-separator-tokens

    更新索引的非分隔符标记列表。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    ["@", "#"]
    

    字符串数组,每个字符串表示单词分隔符列表中存在的标记。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/articles/settings/non-separator-tokens' \
      -H 'Content-Type: application/json'  \
      --data-binary '["@", "#"]'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    使用此 taskUid 获取有关任务状态的更多详细信息。

    重置非分隔符标记

    DELETE/indexes/{index_uid}/settings/non-separator-tokens

    将索引的非分隔符标记列表重置为其默认值,[]

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/articles/settings/separator-tokens'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    使用此 taskUid 获取有关任务状态的更多详细信息。

    可排序属性

    使用sort 搜索参数对搜索结果进行排序时可以使用的属性。

    警告

    更新可排序属性将重新索引索引中的所有文档,这可能需要一些时间。我们建议先更新索引设置,然后再添加文档,因为这可以减少 RAM 消耗。

    要了解有关可排序属性的更多信息,请参阅我们的专用指南。

    获取可排序属性

    GET/indexes/{index_uid}/settings/sortable-attributes

    获取索引的可排序属性。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/books/settings/sortable-attributes'
    响应:200 Ok
    [
      "price",
      "author.surname"
    ]
    

    更新可排序属性

    PUT/indexes/{index_uid}/settings/sortable-attributes

    更新索引的可排序属性列表。

    您可以在我们的专用指南中阅读有关查询时排序的更多信息。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    [<String>, <String>, …]
    

    一个字符串数组。 每个字符串都应是所选索引中存在的属性。

    如果属性包含对象,您可以使用点表示法将其一个或多个键设置为此设置的值:"sortableAttributes": ["author.surname"]

    警告

    如果该字段不存在,则不会引发错误。

    要了解有关可排序属性的更多信息,请参阅我们的专用指南。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/books/settings/sortable-attributes' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        "price",
        "author"
      ]'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置可排序属性

    DELETE/indexes/{index_uid}/settings/sortable-attributes

    将索引的可排序属性列表重置回其默认值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/books/settings/sortable-attributes'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    停用词

    添加到 stopWords 列表中的单词在未来的搜索查询中将被忽略。

    警告

    更新停用词将重新索引索引中的所有文档,这可能需要一些时间。我们建议先更新索引设置,然后再添加文档,因为这可以减少 RAM 消耗。

    提示

    停用词与数据集中使用的语言密切相关。例如,大多数包含英语文档的数据集都会有无数次出现 theof。相反,意大利语数据集将受益于忽略诸如 alail 之类的单词。

    这个由一位法国开发人员维护的网站提供了不同语言的可能停用词列表。请注意,根据您的数据集和用例,您需要调整这些列表以获得最佳结果。

    获取停用词

    GET/indexes/{index_uid}/settings/stop-words

    获取索引的停用词列表。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies/settings/stop-words'
    响应:200 Ok
    [
      "of",
      "the",
      "to"
    ]
    

    更新停用词

    PUT/indexes/{index_uid}/settings/stop-words

    更新索引的停用词列表。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    [<String>, <String>, …]
    

    字符串数组。每个字符串都应该是一个单独的单词。

    如果已存在停用词列表,则它将被覆盖(替换)。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/stop-words' \
      -H 'Content-Type: application/json' \
      --data-binary '[
        "the",
        "of",
        "to"
      ]'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置停用词

    DELETE/indexes/{index_uid}/settings/stop-words

    将索引的停用词列表重置为其默认值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies/settings/stop-words'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    同义词

    synonyms 对象包含单词及其各自的同义词。在 Meilisearch 中,同义词被认为与其关联的单词在计算搜索结果时是相等的。

    要了解有关同义词的更多信息,请参阅我们的专用指南。

    获取同义词

    GET/indexes/{index_uid}/settings/synonyms

    获取索引的同义词列表。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/movies/settings/synonyms'
    响应:200 OK
    {
      "wolverine": [
        "xmen",
        "logan"
      ],
      "logan": [
        "wolverine",
        "xmen"
      ],
      "wow": [
        "world of warcraft"
      ]
    }
    

    更新同义词

    PUT/indexes/{index_uid}/settings/synonyms

    更新索引的同义词列表。同义词是规范化的。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    {
      <String>: [<String>, <String>, …],
      …
    }
    

    包含所有同义词及其关联单词的对象。在数组中添加关联的单词以设置单词的同义词。

    要了解有关同义词的更多信息,请参阅我们的专用指南。

    示例

    curl \
      -X PUT 'https://127.0.0.1:7700/indexes/movies/settings/synonyms' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "wolverine": [
          "xmen",
          "logan"
        ],
        "logan": [
          "wolverine",
          "xmen"
        ],
        "wow": ["world of warcraft"]
      }'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    重置同义词

    DELETE/indexes/{index_uid}/settings/synonyms

    将索引的同义词列表重置为其默认值。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/movies/settings/synonyms'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "movies",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2021-08-11T09:25:53.000000Z"
    }
    

    您可以使用此 taskUid 获取有关任务状态的更多详细信息。

    拼写容错

    拼写容错可帮助用户即使搜索查询中包含拼写错误或错别字也能找到相关结果。此设置允许您配置接受拼写错误的最小单词大小,并为特定单词或属性禁用拼写容错。

    要了解有关拼写容错的更多信息,请参阅我们的专用指南。

    拼写容错对象

    名称类型默认值描述
    已启用布尔值true是否启用拼写容错
    minWordSizeForTypos.oneTypo整数5接受 1 个拼写错误的最小单词大小;必须介于 0twoTypos 之间
    minWordSizeForTypos.twoTypos整数9接受 2 个拼写错误的最小单词大小;必须介于 oneTypo255 之间
    disableOnWords字符串数组禁用拼写容错功能的单词数组
    disableOnAttributes字符串数组禁用拼写容错功能的属性数组

    获取拼写容错设置

    GET/indexes/{index_uid}/settings/typo-tolerance

    获取索引的拼写容错设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/books/settings/typo-tolerance'
    响应:200 OK
    {
      "enabled": true,
      "minWordSizeForTypos": {
        "oneTypo": 5,
        "twoTypos": 9
      },
      "disableOnWords": [],
      "disableOnAttributes": []
    }
    

    更新拼写容错设置

    PATCH/indexes/{index_uid}/settings/typo-tolerance

    部分更新索引的拼写容错设置。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    {
      "enabled": <Boolean>,
      "minWordSizeForTypos": {
        "oneTypo": <Integer>,
        "twoTypos": <Integer>
      },
      "disableOnWords": [<String>, <String>, …],
      "disableOnAttributes": [<String>, <String>, …]
    }
    
    名称类型默认值描述
    已启用布尔值true是否启用拼写容错
    minWordSizeForTypos.oneTypo整数5接受 1 个拼写错误的最小单词大小;必须介于 0twoTypos 之间
    minWordSizeForTypos.twoTypos整数9接受 2 个拼写错误的最小单词大小;必须介于 oneTypo255 之间
    disableOnWords字符串数组禁用拼写容错功能的单词数组
    disableOnAttributes字符串数组禁用拼写容错功能的属性数组

    示例

    curl \
      -X PATCH 'https://127.0.0.1:7700/indexes/books/settings/typo-tolerance' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "minWordSizeForTypos": {
          "oneTypo": 4,
          "twoTypos": 10
        },
        "disableOnAttributes": ["title"]
      }'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:56:44.991039Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    重置拼写容错设置

    DELETE/indexes/{index_uid}/settings/typo-tolerance

    将索引的拼写容错设置重置为其默认值

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/books/settings/typo-tolerance'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:53:32.863107Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    嵌入器(实验性)

    嵌入器将文档和查询转换为向量嵌入。您必须配置至少一个嵌入器才能使用 AI 驱动的搜索。

    嵌入器对象

    嵌入器对象最多可以包含 256 个嵌入器对象。每个嵌入器对象都必须分配一个唯一的名称

    {
      "default": {
        "source": "huggingFace",
        "model": "BAAI/bge-base-en-v1.5",
        "documentTemplate": "A movie titled '{{doc.title}}' whose description starts with {{doc.overview|truncatewords: 20}}"
      },
      "openai": {
        "source": "openAi",
        "apiKey": "OPENAI_API_KEY",
        "model": "text-embedding-3-small",
        "documentTemplate": "A movie titled {{doc.title}} whose description starts with {{doc.overview|truncatewords: 20}}",
      }
    }
    

    这些嵌入器对象可能包含以下字段:

    名称类型默认值描述
    source字符串将从文档生成嵌入的第三方工具。必须是 openAihuggingFaceollamarestuserProvided
    url字符串https://127.0.0.1:11434/api/embeddingsMeilisearch 在查询嵌入器时连接的 URL。
    apiKey字符串Meilisearch 应在每次向嵌入器发送请求时附带的身份验证令牌。如果不存在,Meilisearch 将尝试从环境变量中读取它。
    model字符串您的嵌入器在生成向量时使用的模型。
    documentTemplate字符串{% for field in fields %} {% if field.is_searchable and not field.value == nil %}{{ field.name }}: {{ field.value }} {% endif %} {% endfor %}定义 Meilisearch 发送到嵌入器的数据的模板。
    documentTemplateMaxBytes整数400呈现的文档模板的最大允许大小。
    dimensions整数所选模型中的维度数量。如果未提供,Meilisearch 会尝试推断此值。
    revision字符串模型修订哈希值。
    distribution对象描述搜索结果的自然分布。必须包含两个字段,meansigma,每个字段都包含介于 01 之间的数值。
    request对象一个 JSON 值,表示 Meilisearch 向远程嵌入器发出的请求。
    response对象一个 JSON 值,表示 Meilisearch 期望从远程嵌入器收到的响应。
    binaryQuantized布尔值一旦设置为 true,将不可逆地将所有向量维度转换为 1 位值。

    获取嵌入器设置

    GET/indexes/{index_uid}/settings/embedders

    获取为索引配置的嵌入器。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X GET 'https://127.0.0.1:7700/indexes/INDEX_NAME/settings/embedders'
    响应:200 OK
    {
      "default": {
        "source":  "openAi",
        "apiKey": "OPENAI_API_KEY",
        "model": "text-embedding-3-small",
        "documentTemplate": "A movie titled {{doc.title}} whose description starts with {{doc.overview|truncatewords: 20}}",
        "dimensions": 1536
      }
    }
    

    更新嵌入器设置

    PATCH/indexes/{index_uid}/settings/embedders

    部分更新索引的嵌入器设置。更新此设置后,Meilisearch 可能会重新索引所有文档并重新生成它们的嵌入。

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    正文

    {
      "default": {
        "source": <String>,
        "url": <String>,
        "apiKey": <String>,
        "model": <String>,
        "documentTemplate": <String>,
        "documentTemplateMaxBytes": <Integer>,
        "dimensions": <Integer>,
        "revision": <String>,
        "distribution": {
          "mean": <Float>,
          "sigma": <Float>
        },
        "request": {},
        "response": {},
        "headers": {},
        "binaryQuantized": <Boolean>
      }
    }
    

    将嵌入器设置为 null 以将其从嵌入器列表中删除。

    source

    使用 source 来配置嵌入器的来源。以下嵌入器可以自动为文档和查询生成向量。

    此外,可以使用 rest 通过任何提供 REST API 的嵌入器自动生成嵌入。

    您还可以配置 userProvided 嵌入器。在这种情况下,您必须手动在文档的 _vector 字段中包含向量数据。您还必须手动为搜索查询生成向量。

    此字段是必需的。

    url

    Meilisearch 查询 url 以生成查询和文档的向量嵌入。url 必须指向与 REST 兼容的嵌入器。您还可以使用 url 来使用代理,例如从代理后面定位 openAi 时。

    使用 rest 嵌入器时,此字段是必需的。

    使用 ollamaopenAi 嵌入器时,此字段是可选的。

    此字段与 huggingFaceuserProvided 嵌入器不兼容。

    apiKey

    Meilisearch 应在每次向嵌入器发送请求时附带的身份验证令牌。

    如果使用受保护的 rest 嵌入器,则此字段是必需的。

    对于 openAIollama 嵌入器,此字段是可选的。如果您不指定 apiKey,Meilisearch 将尝试从环境变量 OPENAI_API_KEYMEILI_OLLAMA_URL 中读取它。

    此字段与 huggingFaceuserProvided 嵌入器不兼容。

    model

    您的嵌入器在生成向量时使用的模型。这些是 Meilisearch 支持的官方支持模型

    其他模型,例如 HuggingFace 的 BERT 模型 或者由 Ollama 和 REST 嵌入器提供的模型也可能与 Meilisearch 兼容。

    对于 Ollama 嵌入器,此字段是必需的。

    对于 openAihuggingFace,此字段是可选的。默认情况下,Meilisearch 分别使用 text-embedding-3-smallBAAI/bge-base-en-v1.5

    此字段与 restuserProvided 嵌入器不兼容。

    documentTemplate

    documentTemplate 是一个包含 Liquid 模板 的字符串。Meilisearch 会为每个文档插值模板,并将生成的文本发送到嵌入器。然后,嵌入器会根据此文本生成文档向量。

    您可以使用以下上下文值

    如果 field 在文档中不存在,则其 valuenil

    为了获得最佳结果,请构建仅包含高度相关数据的短模板。如果使用长字段,请考虑截断它。如果您不手动设置它,documentTemplate 将包含所有可搜索和非空的文档字段。这可能会导致次优的性能和相关性。

    此字段是可选的,但强烈建议所有嵌入器使用。

    documentTemplateMaxBytes

    呈现的文档模板的最大大小。较长的文本将被截断以符合配置的限制。

    documentTemplateMaxBytes 必须是整数。它默认为 400

    此字段对于所有嵌入器都是可选的。

    dimensions

    所选模型中的维度数量。如果未提供,Meilisearch 会尝试推断此值。

    在大多数情况下,dimensions 应与您选择的模型的精确值相同。将 dimensions 设置为低于模型的值可能会提高性能,并且仅在以下 OpenAI 模型中受支持

    对于 userProvided 嵌入器,此字段是必需的。

    对于 openAihuggingFaceollamarest 嵌入器,此字段是可选的。

    revision

    使用此字段来使用模型的特定修订版本。

    此字段对于 huggingFace 嵌入器是可选的。

    此字段与所有其他嵌入器不兼容。

    request

    request 必须是 JSON 对象,其结构和数据与您必须发送到 rest 嵌入器的请求相同。

    包含 Meilisearch 应发送到嵌入器的输入文本的字段必须替换为 "{{text}}"

    {
      "source": "rest",
      "request": {
        "prompt": "{{text}}"},}
    

    如果在一个请求中发送多个文档,请将输入字段替换为 ["{{text}}", "{{..}}"]

    {
      "source": "rest",
      "request": {
        "prompt": ["{{text}}", "{{..}}"]},}
    

    使用 rest 嵌入器时,此字段是必需的。

    此字段与所有其他嵌入器不兼容。

    response

    response 必须是 JSON 对象,其结构和数据与您期望从 rest 嵌入器收到的响应相同。

    包含嵌入本身的字段必须替换为 "{{embedding}}"

    {
      "source": "rest",
      "response": {
        "data": "{{embedding}}"},}
    

    如果单个响应包括多个嵌入,则包含嵌入本身的字段必须是一个包含两项的数组。一项必须声明单个嵌入的位置和结构,而第二项应为 "{{..}}"

    {
      "source": "rest",
      "response": {
        "data": [
          {
            "embedding": "{{embedding}}"
          },
          "{{..}}"
        ]},}
    

    使用 rest 嵌入器时,此字段是必需的。

    此字段与所有其他嵌入器不兼容。

    distribution

    出于数学原因,语义搜索结果的 _rankingScore 往往紧密地围绕一个取决于所使用的嵌入器和模型的平均值进行分组。与关键字搜索结果相比,这可能导致相关的语义点击被低估,而不相关的语义点击被高估。

    在配置嵌入器以使用仿射变换校正返回的语义点击的 _rankingScore 时使用 distribution

    curl \
      -X PATCH 'https://127.0.0.1:7700/indexes/INDEX_NAME/settings' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "embedders": {
          "default": {
            "source":  "huggingFace",
            "model": "MODEL_NAME",
            "distribution": {
              "mean": 0.7,
              "sigma": 0.3
            }
          }
        }
      }'
    

    配置 distribution 需要进行一定量的试错,您必须执行语义搜索并监视结果。根据它们的 rankingScore 和相关性,添加该索引的观察到的 meansigma 值。

    distribution 是一个与所有嵌入器来源兼容的可选字段。它必须是一个包含两个字段的对象

    更改 distribution 不会触发重新索引操作。

    headers

    headers 必须是 JSON 对象,其键表示要在向嵌入器发送的请求中发送的其他标头的名称,其值表示这些其他标头的值。

    默认情况下,Meilisearch 在向 rest 嵌入器发出的所有请求中发送以下标头

    如果 headers 包含以下字段中的任何一个,则显式声明的值将优先于默认值。

    当使用 rest 嵌入器时,此字段是可选的。

    此字段与所有其他嵌入器不兼容。

    binaryQuantized

    当设置为 true 时,通过使用 1 位值表示每个维度来压缩向量。这会降低语义搜索结果的相关性,但会大大减小数据库大小。

    当处理大型 Meilisearch 项目时,此选项可能很有用。如果您的项目包含超过一百万个文档并使用超过 1400 个维度的模型,请考虑激活它。

    二进制量化是不可逆的过程

    激活 binaryQuantized 是不可逆的。 启用后,Meilisearch 会转换所有向量并丢弃所有不适合 1 位的向量数据。恢复向量原始值的唯一方法是在新的嵌入器中重新向量化整个索引。

    示例

    curl \
      -X PATCH 'https://127.0.0.1:7700/indexes/INDEX_NAME/settings' \
      -H 'Content-Type: application/json' \
      --data-binary '{
        "embedders": {
          "default": {
            "source":  "openAi",
            "apiKey": "anOpenAiApiKey",
            "model": "text-embedding-3-small",
            "documentTemplate": "A document titled '{{doc.title}}' whose description starts with {{doc.overview|truncatewords: 20}}"
          }
        }
      }'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "kitchenware",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2024-05-11T09:33:12.691402Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。

    重置嵌入器设置

    DELETE/indexes/{index_uid}/settings/embedders

    从您的索引中删除所有嵌入器。

    要删除单个嵌入器,请使用更新嵌入器设置端点并将目标嵌入器设置为 null

    路径参数

    名称类型描述
    index_uid *字符串请求索引的uid

    示例

    curl \
      -X DELETE 'https://127.0.0.1:7700/indexes/INDEX_NAME/settings/embedders'
    响应:202 Accepted
    {
      "taskUid": 1,
      "indexUid": "books",
      "status": "enqueued",
      "type": "settingsUpdate",
      "enqueuedAt": "2022-04-14T20:53:32.863107Z"
    }
    

    您可以使用返回的 taskUid 来获取有关 任务状态的更多详细信息。