fix: improve search to only match title and excerpt, not raw HTML content
This commit is contained in:
@@ -55,8 +55,9 @@ export default function SearchOverlay() {
|
|||||||
setLoading(true)
|
setLoading(true)
|
||||||
try {
|
try {
|
||||||
const params = new URLSearchParams({
|
const params = new URLSearchParams({
|
||||||
search: query.trim(),
|
|
||||||
'filter[status][_eq]': 'published',
|
'filter[status][_eq]': 'published',
|
||||||
|
'filter[_or][0][title][_icontains]': query.trim(),
|
||||||
|
'filter[_or][1][excerpt][_icontains]': query.trim(),
|
||||||
limit: '8',
|
limit: '8',
|
||||||
fields: 'id,title,slug,category.slug,category.name',
|
fields: 'id,title,slug,category.slug,category.name',
|
||||||
access_token: process.env.NEXT_PUBLIC_DIRECTUS_TOKEN ?? '',
|
access_token: process.env.NEXT_PUBLIC_DIRECTUS_TOKEN ?? '',
|
||||||
|
|||||||
+7
-2
@@ -144,8 +144,13 @@ export async function searchArticles(query: string): Promise<Article[]> {
|
|||||||
return getClient().request(
|
return getClient().request(
|
||||||
readItems('articles', {
|
readItems('articles', {
|
||||||
fields: ['id', 'title', 'slug', 'category.slug', 'category.name'],
|
fields: ['id', 'title', 'slug', 'category.slug', 'category.name'],
|
||||||
search: query,
|
filter: {
|
||||||
filter: { status: { _eq: 'published' } },
|
_or: [
|
||||||
|
{ title: { _icontains: query } },
|
||||||
|
{ excerpt: { _icontains: query } },
|
||||||
|
],
|
||||||
|
status: { _eq: 'published' },
|
||||||
|
},
|
||||||
limit: 8,
|
limit: 8,
|
||||||
})
|
})
|
||||||
) as Promise<Article[]>
|
) as Promise<Article[]>
|
||||||
|
|||||||
Reference in New Issue
Block a user