WIP
This commit is contained in:
@ -49,10 +49,11 @@ def search_recipes(queryset, params):
|
|||||||
search_type="websearch",
|
search_type="websearch",
|
||||||
config=language,
|
config=language,
|
||||||
)
|
)
|
||||||
|
# TODO make icontains a configurable option - it could eventually have performance impacts
|
||||||
search_vectors = (
|
search_vectors = (
|
||||||
SearchVector('search_vector')
|
SearchVector('search_vector')
|
||||||
+ SearchVector(StringAgg('steps__ingredients__food__name', delimiter=' '), weight='B', config=language)
|
+ SearchVector(StringAgg('steps__ingredients__food__name__unaccent', delimiter=' '), weight='B', config=language)
|
||||||
+ SearchVector(StringAgg('keywords__name', delimiter=' '), weight='B', config=language))
|
+ SearchVector(StringAgg('keywords__name__unaccent', delimiter=' '), weight='B', config=language))
|
||||||
trigram = (
|
trigram = (
|
||||||
TrigramSimilarity('name', search_string)
|
TrigramSimilarity('name', search_string)
|
||||||
+ TrigramSimilarity('description', search_string)
|
+ TrigramSimilarity('description', search_string)
|
||||||
@ -60,11 +61,11 @@ def search_recipes(queryset, params):
|
|||||||
search_rank = SearchRank(search_vectors, search_query)
|
search_rank = SearchRank(search_vectors, search_query)
|
||||||
queryset = (
|
queryset = (
|
||||||
queryset.annotate(
|
queryset.annotate(
|
||||||
search=search_vectors,
|
vector=search_vectors,
|
||||||
rank=search_rank + trigram,
|
rank=search_rank + trigram,
|
||||||
)
|
)
|
||||||
.filter(
|
.filter(
|
||||||
search_vector=search_query
|
vector=search_query
|
||||||
)
|
)
|
||||||
.order_by('-rank'))
|
.order_by('-rank'))
|
||||||
else:
|
else:
|
||||||
|
42
vetur.config.js
Normal file
42
vetur.config.js
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
// vetur.config.js
|
||||||
|
/** @type {import('vls').VeturConfig} */
|
||||||
|
module.exports = {
|
||||||
|
// **optional** default: `{}`
|
||||||
|
// override vscode settings
|
||||||
|
// Notice: It only affects the settings used by Vetur.
|
||||||
|
settings: {
|
||||||
|
"vetur.useWorkspaceDependencies": true,
|
||||||
|
"vetur.experimental.templateInterpolationService": true
|
||||||
|
},
|
||||||
|
// **optional** default: `[{ root: './' }]`
|
||||||
|
// support monorepos
|
||||||
|
projects: [
|
||||||
|
'./vue', // shorthand for only root.
|
||||||
|
{
|
||||||
|
// **required**
|
||||||
|
// Where is your project?
|
||||||
|
// It is relative to `vetur.config.js`.
|
||||||
|
root: './vue',
|
||||||
|
// **optional** default: `'package.json'`
|
||||||
|
// Where is `package.json` in the project?
|
||||||
|
// We use it to determine the version of vue.
|
||||||
|
// It is relative to root property.
|
||||||
|
package: './vue/package.json',
|
||||||
|
// **optional**
|
||||||
|
// Where is TypeScript config file in the project?
|
||||||
|
// It is relative to root property.
|
||||||
|
tsconfig: './vue/tsconfig.json',
|
||||||
|
// **optional** default: `'./.vscode/vetur/snippets'`
|
||||||
|
// Where is vetur custom snippets folders?
|
||||||
|
snippetFolder: './.vscode/vetur/snippets',
|
||||||
|
// **optional** default: `[]`
|
||||||
|
// Register globally Vue component glob.
|
||||||
|
// If you set it, you can get completion by that components.
|
||||||
|
// It is relative to root property.
|
||||||
|
// Notice: It won't actually do it. You need to use `require.context` or `Vue.component`
|
||||||
|
globalComponents: [
|
||||||
|
'./vue/src/components/**/*.vue'
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Reference in New Issue
Block a user