{"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590697977", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590697977, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDY5Nzk3Nw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-25T05:57:24Z", "updated_at": "2020-02-25T05:57:24Z", "author_association": "OWNER", "body": "OK, this is in master now. You can install master using:\r\n\r\n pip install https://github.com/simonw/datasette/archive/master.zip\r\n\r\nDocumentation here: https://datasette.readthedocs.io/en/latest/json_api.html#special-table-arguments", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590209074", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590209074, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDIwOTA3NA==", "user": {"value": 58088336, "label": "tunguyenatwork"}, "created_at": "2020-02-24T08:20:15Z", "updated_at": "2020-02-24T08:20:15Z", "author_association": "NONE", "body": "Awesome, thank you so much. I\u2019ll try it out and let you know.\n\nOn Sun, Feb 23, 2020 at 1:44 PM Simon Willison \nwrote:\n\n> You can try this right now like so:\n>\n> pip install https://github.com/simonw/datasette/archive/search-raw.zip\n>\n> Then use the following:\n>\n> ?_search=foo*&_searchmode=raw`\n>\n> \u2014\n> You are receiving this because you authored the thread.\n> Reply to this email directly, view it on GitHub\n> ,\n> or unsubscribe\n> \n> .\n>\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590113889", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590113889, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMzg4OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:44:11Z", "updated_at": "2020-02-23T20:44:11Z", "author_association": "OWNER", "body": "Still needs documentation before I can land it in master.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590113869", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590113869, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMzg2OQ==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:43:59Z", "updated_at": "2020-02-23T20:43:59Z", "author_association": "OWNER", "body": "You can try this right now like so:\r\n\r\n pip install https://github.com/simonw/datasette/archive/search-raw.zip\r\n\r\nThen use the following:\r\n\r\n ?_search=foo*&_searchmode=raw`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590110086", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590110086, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDExMDA4Ng==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:06:03Z", "updated_at": "2020-02-23T20:06:52Z", "author_association": "OWNER", "body": "Nice thing about the \"search mode\" concept is that I can optionally reflect it in the HTML UI in some way - maybe with a checkbox for \"raw\" mode that only shows up if the user hits the page with `?_searchmode=raw` in the querystring.\r\n\r\nIt also hints at potentially adding further search modes in the future. Not sure if I'd do that but it's an interesting potential avenue to explore.", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590109778", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590109778, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwOTc3OA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T20:02:28Z", "updated_at": "2020-02-23T20:02:28Z", "author_association": "OWNER", "body": "`?_search_raw=` doesn't work because it clashes with an existing feature - you can use `?_search_colname=` to search just within a specific column, and there could possibly be a column called `raw`.\r\n\r\nI could go with `?_searchraw=` - or maybe have an additional \"mode\" selection like `?_search=foo*&_searchmode=raw`", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-590109450", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 590109450, "node_id": "MDEyOklzc3VlQ29tbWVudDU5MDEwOTQ1MA==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-23T19:59:11Z", "updated_at": "2020-02-23T19:59:11Z", "author_association": "OWNER", "body": "I'm going to call it `?_search_raw=` because it will pass through the value as a raw (unprocessed) argument to SQLite FTS, which means it will expose features other than just wildcards: https://www.sqlite.org/fts5.html#full_text_query_syntax", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-589922016", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 589922016, "node_id": "MDEyOklzc3VlQ29tbWVudDU4OTkyMjAxNg==", "user": {"value": 58088336, "label": "tunguyenatwork"}, "created_at": "2020-02-22T05:50:10Z", "updated_at": "2020-02-22T05:50:10Z", "author_association": "NONE", "body": "Thanks Simon,\r\nMy use case is using Datasette for full text search type ahead. That was working pretty well. The _search_wildcard= option will be awesome. Thanks\r\n", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null} {"html_url": "https://github.com/simonw/datasette/issues/676#issuecomment-589908293", "issue_url": "https://api.github.com/repos/simonw/datasette/issues/676", "id": 589908293, "node_id": "MDEyOklzc3VlQ29tbWVudDU4OTkwODI5Mw==", "user": {"value": 9599, "label": "simonw"}, "created_at": "2020-02-22T02:31:21Z", "updated_at": "2020-02-22T02:31:21Z", "author_association": "OWNER", "body": "I'm afraid this is by design: supporting wildcards in that mode was more-or-less accidental and often resulted in unexpected user-facing syntax errors when users accidentally entered search text that included characters with special meaning to SQLite.\r\n\r\nYou can still execute wildcard searches but you have to do so using custom SQL statements.\r\n\r\nI'm open to suggestions for more friendly ways to support this functionality. Would an alternative `_search_wildcard=` URL parameter be worth supporting I wonder? What's your specific use-case for wildcards?", "reactions": "{\"total_count\": 0, \"+1\": 0, \"-1\": 0, \"laugh\": 0, \"hooray\": 0, \"confused\": 0, \"heart\": 0, \"rocket\": 0, \"eyes\": 0}", "issue": {"value": 568091133, "label": "?_searchmode=raw option for running FTS searches without escaping characters"}, "performed_via_github_app": null}