* docs improvements and changes * updated module definition * modules + dml changes * fix build * fix vale error * fix lint errors * fixes to stripe docs * fix condition * fix condition * fix module defintion * fix checkout * disable UI action * change oas preview action * flatten provider module options * fix lint errors * add module link docs * pr comments fixes * fix vale error * change node engine version * links -> linkable * add note about database name * small fixes * link fixes * fix response code in api reference * added migrations step
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 query is applied on searchable properties in a data model.
|
|
|
|
---
|
|
|
|
## 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/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",
|
|
})
|
|
```
|
|
|
|
The `q` filter is applied on the `name` property of the `MyCustom` records.
|