Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

mroongaで論理積・論理和の検索条件を扱う(mroonga_command編)

mroongaで論理を扱う場合、mroonga_commandでラッピングしてしまうのが手っ取りバ早そうです。
...もっとスマートな方法をご存知の方はお気軽にトマホークを御投擲下さい(震え声

AND(論理積)検索

両方一致のAND検索

mysql> select mroonga_command("select professors --output_columns name --filter 'name @ \"石\" && name @ \"田\"'");
+--------------------------------------------------------------------------------------------------------+
| mroonga_command("select actors --output_columns name --filter 'name @ \"石\" && name @ \"田\"'")   |
+--------------------------------------------------------------------------------------------------------+
| [[[2],[["name","ShortText"]],["石田 三成"],["石田 純一"]]]                                           |
+--------------------------------------------------------------------------------------------------------+
1 row in set (0.13 sec)

OR(論理和)検索

どちらか一致のOR検索。

mysql> select mroonga_command("select professors --output_columns name --filter 'name @ \"石\" || name @ \"田\"'");
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| mroonga_command("select professors --output_columns name --filter 'name @ \"石\" AND name @ \"田\"'")                                                  |
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
| [[[5],[["name","ShortText"]],["石田 三成"],["石田 純一"],["石橋 貴明"],["石橋 凌"],["石川 五右衛門"]]]                               |
+--------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.04 sec)