0

ケースシナリオを想像してみてください。テキストとして材料を含むレシピのリストがあります。

「ごま油」が入っているレシピがいくつあるか知りたい。

Recipe.ingredients_like( "ごま油")を使用したデフォルトの検索ロジック検索の問題は、「ごま油」を検索すると、ごまと油を含むレシピが表示されることです。これは、レシピに「ごま油」などが含まれている場合に問題になります。ごま油」+「コーンオイル」

4

1 に答える 1

1

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%') 
于 2010-09-03T07:47:24.400 に答える