Sequelize Op.or/Op.like
サイドプロジェクトを使用してパーソナルテクノロジーブログを作成しており、キーワード検索機能を追加するロジックを検討しています.
sequelizeのquery演算子を使うことは知っていますが、一度も使ったことがないので、ずっとエラーが発生しています.
科学技術ブログで位置を決めるとき、タイトル、コンテンツ、キーワードを作成することができます.ここで、検索機能を利用して、コンテンツとキーワードの単語や文を検索するにはどうすればいいですか.
最初に試したコードは
キーワードと本文の内容をはっきり書いてこそ、検索機能が起動します.例えば、位置決めの際には、#返信というキーワードを付けて位置決めを行い、#返信という方式では検索できず、正しく#返信を入力するしかありません.これで検索機能を追加しても意味がないので、探している間にlikeを見つけました.
sequelizeのquery演算子を使うことは知っていますが、一度も使ったことがないので、ずっとエラーが発生しています.
科学技術ブログで位置を決めるとき、タイトル、コンテンツ、キーワードを作成することができます.ここで、検索機能を利用して、コンテンツとキーワードの単語や文を検索するにはどうすればいいですか.
最初に試したコードは
const findByKeyword = await Post.findAll({
getAllPostsByKeyword: async (req, res) => {
const keyword = req.params.keyword;
const findByKeyword = await Post.findAll({
attributes: ['id', 'content', 'title', 'keyword', 'thumbnail'],
where: {
[Op.or]: [
{
content: {
keyword
},
},
{
keyword: {
keyword
},
},
],
},
このように試みますが、or演算子のみを使用する場合は、キーワードまたは本文の内容のキーワードは含まれません.キーワードと本文の内容をはっきり書いてこそ、検索機能が起動します.例えば、位置決めの際には、#返信というキーワードを付けて位置決めを行い、#返信という方式では検索できず、正しく#返信を入力するしかありません.これで検索機能を追加しても意味がないので、探している間にlikeを見つけました.
getAllPostsByKeyword: async (req, res) => {
const keyword = req.params.keyword;
const findByKeyword = await Post.findAll({
attributes: ['id', 'content', 'title', 'keyword', 'thumbnail'],
where: {
[Op.or]: [
{
content: {
[Op.like]: `%${keyword}%`,
},
},
{
keyword: {
[Op.like]: `%${keyword}%`,
},
},
],
},
Op.likeを使用してコードを記述すると、結果はREACHまたはLIEを検索するだけでREACTキーワードを見つけることができます.Reference
この問題について(Sequelize Op.or/Op.like), 我々は、より多くの情報をここで見つけました https://velog.io/@goodbsm2421/Sequelize-Op.or-Op.likeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol