# 搜索与筛选

快速找到正确的产品对高效的销售点运营至关重要。WCPOS 提供强大的搜索和筛选功能，帮助您即时定位产品，即使库存规模很大也能轻松应对。

![产品搜索和筛选界面](/img/product-search-and-filtering.png)

WCPOS 中的产品搜索和筛选界面

## 产品搜索[​](#product-search "直接链接到 产品搜索")

### 统一搜索字段[​](#unified-search-field "直接链接到 统一搜索字段")

WCPOS 提供一个搜索字段，可同时跨多个产品属性进行搜索：

* **产品名称** - 搜索产品标题和描述
* **SKU** - 匹配产品 postmeta `_sku` 字段
* **条形码** - 搜索已配置的条形码字段，该字段可以是任意 postmeta 字段。旧版设置为 `_sku`，但未来将更改为 `_global_unique_id`。

只需在“搜索产品”字段中输入搜索词，POS 就会立即在所有这些字段中筛选结果。

### 分词搜索技术[​](#tokenized-search-technology "直接链接到 分词搜索技术")

搜索功能使用具备高级分词能力的 [FlexSearch library](https://github.com/nextapps-de/flexsearch)：

* **前向分词** - 从词语开头匹配部分词语（例如，搜索“blue”会找到“blueberry”）
* **性能优化** - 使用性能预设以快速返回搜索结果
* **语言感知** - 适配店铺配置的语言
* **延迟初始化** - 仅在需要时加载搜索索引，以优化内存使用

搜索匹配词语开头

由于匹配基于前向（前缀）方式，搜索会查找词语或分词的**开头**，而不是中间部分 — 搜索“berry”不会找到“blueberry”，连字符会开始一个新的分词（因此“ABC-XYZ”可通过“ABC”或“XYZ”找到，但不能通过“BCX”找到）。对于不使用空格分隔词语的语言（例如中文、日语），分词并不可靠 — 请改用**条码或 SKU**搜索。

### 搜索的工作方式[​](#how-search-works "直接链接到 搜索的工作方式")

在搜索字段中输入时，POS 会：

1. **将输入内容分词**为可搜索词项
2. **先搜索本地**存储的产品数据，以即时返回结果
3. 如果未找到本地匹配项，则**查询服务器**，然后下载并存储新产品，以供后续搜索使用
4. 在输入时**实时更新结果**

这种方式既能确保快速的搜索性能，又能逐步构建完整的本地产品数据库。

## 产品筛选[​](#product-filtering "直接链接到 产品筛选")

### 筛选栏[​](#filter-bar "直接链接到 筛选栏")

在搜索字段下方，可以找到交互式筛选开关和下拉菜单，用于按特定条件缩小产品范围。

### 可用筛选器[​](#available-filters "直接链接到 可用筛选器")

#### 库存状态[​](#stock-status "直接链接到 库存状态")

根据库存状态筛选产品：

* **有库存** - 具有可用库存的产品
* **缺货** - 库存为零的产品
* **延期交货** - 可延期交货的产品

#### 特色产品[​](#featured-products "直接链接到 特色产品")

切换此选项，仅显示在 WooCommerce 店铺中标记为“特色”的产品。

#### 促销产品[​](#on-sale-products "直接链接到 促销产品")

筛选以仅显示当前正在促销或有有效折扣的产品。

#### 分类[​](#category "直接链接到 分类")

使用分类下拉菜单按已分配的产品分类筛选产品。这有助于快速查找特定部门或产品线中的产品。

#### 标签[​](#tag "直接链接到 标签")

按产品标签筛选，以查找具有你在 WooCommerce 店铺中定义的特定属性或特征的商品。

### 使用筛选器[​](#using-filters "直接链接到 使用筛选器")

* **切换筛选器** - 点击任意筛选器按钮以启用它（启用的筛选器会高亮显示）
* **多个筛选器** - 可以组合多个筛选器，进一步缩小搜索范围
* **清除筛选器** - 再次点击已启用的筛选器即可停用
* **搜索 + 筛选** - 将筛选器与搜索字段配合使用，以精确定位产品

## 条形码配置[​](#barcode-configuration "直接链接到 条形码配置")

### 搜索字段[​](#search-fields "直接链接到 搜索字段")

搜索功能会自动包含已配置的条形码字段。用于搜索的条形码字段取决于 POS 设置配置。

## 常见问题[​](#faq "直接链接到 常见问题")

条形码的 \_global\_unique\_id 字段是什么？

`_global_unique_id` 字段是 WooCommerce 最近新增的条形码字段，用于在不同店铺之间提供更好的条形码标准化。

**要点：**

* **现代标准**：此字段专为全球条形码识别而设计
* **POS 配置**：可以在 POS 设置中将 POS 配置为使用 `_global_unique_id` 作为条形码字段
* **旧版与新版**：旧版条码设置使用 `_sku` 字段，但在未来版本中将改为 `_global_unique_id`
* **灵活性**：如果使用第三方条码插件，可以将任何产品元字段配置为条码字段
* **每个产品一个字段**：POS 会搜索单个已配置的条码字段，WooCommerce 会为每个产品（或每个变体）存储一个条码值。如果需要在一个产品上使用多个代码，请将它们存储在自定义字段中，并将条码设置指向该字段
* **未来默认值**：`_global_unique_id` 将在未来的 POS 更新中成为默认条码字段

要配置 POS 用于条码的字段，请前往 WordPress 管理区域中的 POS 设置。

为什么搜索时看不到所有产品？

WCPOS 使用渐进式产品下载来保持性能。如果看不到某个产品：

1. **尝试搜索它** - 这会触发 POS 在服务器上查找该产品
2. **等待下载** - POS 会小批量下载该产品及其他产品
3. **再次搜索** - 下载完成后，该产品会出现在后续搜索中

此过程可确保即使有数千个产品，POS 仍然快速且响应灵敏。请在我们的[产品同步](/zh-CN/products/sync.md)指南中了解更多信息。

可以搜索部分产品名称或 SKU 吗？

可以！分词搜索使用前向匹配，也就是说：

* 搜索 "blue" 会找到包含 "blueberry"、"blue shirt" 等内容的产品。
* 搜索 "ABC" 会找到类似 "ABC123"、"ABC-XYZ" 等 SKU。
* 无需输入完整的词语或编码

搜索功能旨在用尽可能少的输入快速找到产品。
