* docs: update imports and package names across docs + reference configs * generate files * fix import * change preview to rc
51 lines
1.2 KiB
Plaintext
51 lines
1.2 KiB
Plaintext
export const metadata = {
|
|
title: `${pageNumber} Searchable Data Model Property`,
|
|
}
|
|
|
|
# {metadata.title}
|
|
|
|
In this chapter, you'll learn what a searchable property is and how to define it.
|
|
|
|
## What is a Searchable Property?
|
|
|
|
Methods generated by the [service factory](../../modules/service-factory/page.mdx) that accept filters, such as `list{ModelName}s`, accept a `q` property as part of the filters.
|
|
|
|
When the `q` filter is passed, the data model's searchable properties are queried to find matching records.
|
|
|
|
---
|
|
|
|
## Define a Searchable Property
|
|
|
|
Use the `searchable` method on a `text` property to indicate that it's searchable.
|
|
|
|
For example:
|
|
|
|
export const searchableHighlights = [
|
|
["4", "searchable", "Define the `name` property as searchable."]
|
|
]
|
|
|
|
```ts highlights={searchableHighlights}
|
|
import { model } from "@medusajs/framework/utils"
|
|
|
|
const MyCustom = model.define("my_custom", {
|
|
name: model.text().searchable(),
|
|
// ...
|
|
})
|
|
|
|
export default MyCustom
|
|
```
|
|
|
|
In this example, the `name` property is searchable.
|
|
|
|
### Search Example
|
|
|
|
If you pass a `q` filter to the `listMyCustoms` method:
|
|
|
|
```ts
|
|
const myCustoms = await helloModuleService.listMyCustoms({
|
|
q: "John",
|
|
})
|
|
```
|
|
|
|
This retrieves records that include `John` in their `name` property.
|