ケースシナリオを想像してみてください。テキストとして材料を含むレシピのリストがあります。
「ごま油」が入っているレシピがいくつあるか知りたい。
Recipe.ingredients_like( "ごま油")を使用したデフォルトの検索ロジック検索の問題は、「ごま油」を検索すると、ごまと油を含むレシピが表示されることです。これは、レシピに「ごま油」などが含まれている場合に問題になります。ごま油」+「コーンオイル」
ケースシナリオを想像してみてください。テキストとして材料を含むレシピのリストがあります。
「ごま油」が入っているレシピがいくつあるか知りたい。
Recipe.ingredients_like( "ごま油")を使用したデフォルトの検索ロジック検索の問題は、「ごま油」を検索すると、ごまと油を含むレシピが表示されることです。これは、レシピに「ごま油」などが含まれている場合に問題になります。ごま油」+「コーンオイル」
sesame oil
これにより、(スペースで区切られた 2 つの単語)を含むレシピが返されます。
Recipe.ingredients_like("sesame oil")
#=> SELECT * FROM `recipes` WHERE (recipes.ingredients LIKE '%sesame oil%')
sesame
これにより、 or oil
(これらの単語のいずれか)を含むレシピが返されます。
Recipe.ingredients_like_any("sesame", "oil")
#=> SELECT * FROM `recipes` WHERE (recipes.ingredients LIKE '%sesame%' OR recipes.ingredients LIKE '%oil%')
sesame
これにより、 and oil
(両方の単語の順序は問いません)を含むレシピが返されます。
Recipe.ingredients_like_all("sesame", "oil")
#=> SELECT * FROM `recipes` WHERE (recipes.ingredients LIKE '%sesame%' AND recipes.ingredients LIKE '%oil%')