# Week 3: Project Search Engine

**URL:** <https://discourse.joplinapp.org/t/week-3-project-search-engine/9044>\
**Category:** GSoC - Search Engine Project\
**Created:** [29 May 2020 18:54 UTC](https://discourse.joplinapp.org/t/week-3-project-search-engine/9044 "2020-05-29T18:54:48Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![naviji](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/naviji/32/2502_2.png) [@naviji](https://discourse.joplinapp.org/u/naviji)\
**Post date:** [29 May 2020 18:54 UTC](https://discourse.joplinapp.org/t/week-3-project-search-engine/9044/1 "2020-05-29T18:54:48Z")

</div>

Add new filter `is` and `iscompleted` to replace `todo` filter.

So now you can :

- Filter by todo using `is:todo`
- Filter by notes using `is:note`
- Filter by completed todo using `iscompleted:true` (you can use true/1/yes)
- Filter by uncompleted todo using `iscompleted:false` (you can use false/0/no)

I also added support for multiple notebooks.  
`notebook:nb1 notebook:nb2`

Wouldn’t it be better to replace `notebook` with` in`?  
`in:nb1 in:nb2`

---

<div class="post-metadata">

**Author:** ![sttrebo](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/sttrebo/32/931_2.png) [@sttrebo](https://discourse.joplinapp.org/u/sttrebo)\
**Post date:** [29 May 2020 19:03 UTC](https://discourse.joplinapp.org/t/week-3-project-search-engine/9044/2 "2020-05-29T19:03:24Z")

</div>

love what you are working on, thanks. my $.02, i prefer less typing where possible so i think ‘in’ is better and understandable.

---

<div class="post-metadata">

**Author:** ![laurent](https://avatars.discourse-cdn.com/v4/letter/l/ce7236/32.png) [@laurent](https://discourse.joplinapp.org/u/laurent)\
**Post date:** [30 May 2020 12:10 UTC](https://discourse.joplinapp.org/t/week-3-project-search-engine/9044/3 "2020-05-30T12:10:09Z")

</div>

Thanks for the update @naviji. As mentioned in another thread, it would be a good idea to create a table of supported query terms and update it as you progress.

> you can use true/1/yes

I think picking only one of these would make for a more robust implementation. Any variant we allow here will have to be maintained permanently afterwards and it's not really worth it in this case as users can learn what boolean form we support.

So let's be strict on the format we accept - I have a preference for 0/1 everywhere, but true/false for booleans is reasonable too, so please pick one. If user enters a format you don't support that's an error.

---

<div class="post-metadata">

**Author:** ![naviji](https://yyz2.discourse-cdn.com/flex028/user_avatar/discourse.joplinapp.org/naviji/32/2502_2.png) [@naviji](https://discourse.joplinapp.org/u/naviji)\
**Post date:** [30 May 2020 14:23 UTC](https://discourse.joplinapp.org/t/week-3-project-search-engine/9044/4 "2020-05-30T14:23:16Z")

</div>

> [@laurent](#):
>
> it would be a good idea to create a table of supported query terms and update it as you progress.

Yes, I'll do that.

> you can use true/1/yes

Stackoverflow uses boolean operators like this. [How do I search? - Help Center - Stack Overflow](https://stackoverflow.com/help/searching)

> The following search operators can be used with values of yes/no, true/false, or 1/0 (each pair behaves the same):

I also prefer 0/1. Let's use that everywhere then.
