mirror of https://github.com/joplin/website.git
212 lines
10 KiB
HTML
212 lines
10 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
|
||
<!--
|
||
|
||
!!! WARNING !!!
|
||
|
||
This file was auto-generated from readme/news/20200913-163730.md and any manual change
|
||
made to it will be overwritten. To make a change to this file please modify
|
||
the source Markdown file:
|
||
|
||
https://github.com/laurent22/joplin/blob/dev/readme/news/20200913-163730.md
|
||
|
||
-->
|
||
|
||
<head>
|
||
<!-- Donate button A/B testing -->
|
||
|
||
<!--
|
||
<script async src="https://www.googleoptimize.com/optimize.js?id=OPT-PW3ZPK3"></script>
|
||
--> <meta
|
||
charset="utf-8"
|
||
http-equiv="X-UA-Compatible"
|
||
content="IE=edge,chrome=1"
|
||
/>
|
||
<link rel="icon" href="/images/favicon.png" />
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
<meta name="theme-color" content="#000000" />
|
||
<meta name="description" content="Joplin, the open source note-taking application" />
|
||
<link
|
||
rel="stylesheet"
|
||
href="/css/bootstrap5.0.2.min.css"
|
||
as="style"
|
||
/>
|
||
<link rel="stylesheet" href="/css/fontawesome-all.min.css?h=ecd507b3125edc4d2a03aa6ae5d07da9">
|
||
<link
|
||
href="https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600;700&display=swap"
|
||
rel="stylesheet"
|
||
as="style"
|
||
media="all"
|
||
onload="this.media='all'; this.onload = null"
|
||
/>
|
||
<link rel="stylesheet" href="/css/site.css?h=ab5af66096e59a1fae97ce6ddfac5980" as="style" />
|
||
<title>Version 1.1: Search engine update | Joplin</title>
|
||
|
||
<script
|
||
src="/js/jquery-3.6.0.min.js"
|
||
rel="preload"
|
||
as="script"
|
||
></script>
|
||
</head>
|
||
<body class="website-env-prod">
|
||
<div class="container-fluid generic-template news-item-page" id="main-container">
|
||
|
||
<div class=" navbar-main white-bg" id="nav-section">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-3">
|
||
<a href="/">
|
||
<img
|
||
src="/images/logo-text-blue.svg"
|
||
alt=""
|
||
id="top-logo"
|
||
width="180"
|
||
/>
|
||
</a>
|
||
</div>
|
||
<div class="col-9 text-right d-none d-md-block">
|
||
<a href="/news/" class="fw500">What's New</a>
|
||
<a href="/help/" class="fw500">Help</a>
|
||
<a href="https://discourse.joplinapp.org/" class="fw500">Forum</a>
|
||
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
|
||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support us
|
||
</a> </div>
|
||
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
|
||
<a class="button-link btn-blue sponsor-button" href="/donate">
|
||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support us
|
||
</a>
|
||
<span class="pointer"
|
||
><img
|
||
src="/images/mobile-menu-black-open-icon.png"
|
||
id="open-menu-mobile"
|
||
alt=""
|
||
/></span>
|
||
|
||
|
||
<div id="menu-mobile">
|
||
<div>
|
||
<div class="text-right">
|
||
<img
|
||
src="/images/close-icon.png"
|
||
alt=""
|
||
class="pointer"
|
||
id="close-menu-mobile"
|
||
/>
|
||
</div>
|
||
|
||
<div class="text-center menu-mobile-top">
|
||
<a href="/news/" class="fw500 mobile-menu-link">What's New</a>
|
||
<a href="/help/" class="fw500 mobile-menu-link">Help</a>
|
||
<a href="https://discourse.joplinapp.org/" class="fw500 mobile-menu-link">Forum</a>
|
||
</div>
|
||
|
||
<div class="menu-mobile-buttons">
|
||
<a href="/plans/" class="button-link btn-trans plans-button">Joplin Cloud</a><a class="button-link btn-blue sponsor-button" href="/donate">
|
||
<i class="fas fa-heart heart-full"></i><i class="far fa-heart heart-line"></i> Support us
|
||
</a> </div>
|
||
</div>
|
||
|
||
|
||
<div>
|
||
<p class="light-blue mobile-menu-link-bottom text-center">
|
||
Copyright © 2016-2021 Laurent Cozic
|
||
<br/>
|
||
<a href="/privacy/" class="fw500">Privacy Policy</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="help-page-container page-20200913-163730">
|
||
<div class="container">
|
||
<div class="row content-wrapper">
|
||
|
||
|
||
<div class="main-content">
|
||
<div class="alert alert-danger alert-env-dev" role="alert">
|
||
Running in prod mode!
|
||
</div>
|
||
<div class="donate-links">
|
||
<p><a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=E8JMYD2LQ8MMA&lc=GB&item_name=Joplin+Development&currency_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg" alt="Donate using PayPal"></a> <a href="https://github.com/sponsors/laurent22/"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg" alt="Sponsor on GitHub"></a> <a href="https://www.patreon.com/joplin"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg" alt="Become a patron"></a> <a href="https://joplinapp.org/donate/#donations"><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg" alt="Donate using IBAN"></a></p>
|
||
</div>
|
||
<h1>Version 1.1: Search engine update<a name="version-1-1-search-engine-update" href="#version-1-1-search-engine-update" class="heading-anchor">🔗</a></h1>
|
||
<p>In this series of posts, I will introduce the changes that are coming in version 1.1 (which in fact is already available as a pre-release).</p>
|
||
<p>For this first feature, I will let Naveen, our GSoC candidate, present it. Naveen has made an excellent job implementing various search engine features, including advanced filters, support for Okapi BM25 scoring algorithm, and fuzzy search. Here is what he has to say:</p>
|
||
<h3>What got done<a name="what-got-done" href="#what-got-done" class="heading-anchor">🔗</a></h3>
|
||
<p>The project consisted of three parts:</p>
|
||
<ol>
|
||
<li>Make search better by introducing additional search filters. (e.g., tags, notebook, type)</li>
|
||
<li>Make the ranking of search results better by implementing the <a href="https://en.wikipedia.org/wiki/Okapi_BM25">Okapi BM25</a> relevance function.</li>
|
||
<li>Make fuzzy search possible.</li>
|
||
</ol>
|
||
<h3>Code contributions<a name="code-contributions" href="#code-contributions" class="heading-anchor">🔗</a></h3>
|
||
<ol>
|
||
<li><a href="https://github.com/laurent22/joplin/pull/3213"><strong>All: Add search filters</strong></a><br>
|
||
Joplin's search had been using the Full-Text Search(FTS) offered by SQLite directly. So though it was fast, it was not versatile. For example, we can't restrict the search scope to a particular notebook or search based on tags.<br>
|
||
The current search implementation fixes most of these problems. It provides a better abstraction over FTS, supporting many new filters. The documentation for the new search filters can be found <a href="https://github.com/laurent22/joplin#searching">here.</a></li>
|
||
<li><a href="https://github.com/laurent22/joplin/pull/3454"><strong>All: Weigh notes using Okapi BM25 score</strong></a><br>
|
||
Joplin used a ranking function based on the number of times the search query occurs in the note and how close they are.<br>
|
||
But there are better ways to rank notes, considering not just the number of times a word appears, but how common it is. Words like "the" is in most notes, while words like "zebra" are not common and should be considered more relevant.<br>
|
||
The new search implementation uses <a href="https://en.wikipedia.org/wiki/Okapi_BM25">Okapi BM25</a> as the ranking function. It ranks a set of documents based on the query terms appearing in each document, regardless of their proximity.</li>
|
||
<li><a href="https://github.com/laurent22/joplin/pull/3632"><strong>Desktop: Fuzzy search</strong></a><br>
|
||
We've added support for fuzzy search. It doesn't replace the need to put * at the end if you want to do a prefix search. But it does let you be a bit more relaxed about the exact spelling. Searching for "tomatos" will also give you results for "tomatoes". (This feature isn't released yet, but will be soon)</li>
|
||
</ol>
|
||
<p>It has been a pleasure working with Laurent and Caleb. They did an excellent job as mentors.</p>
|
||
<p>I hope these new features will be useful to many people. I plan to continue as a member of the Joplin community and help in whatever way I can.</p>
|
||
|
||
<div class="bottom-links">
|
||
<a class="bottom-link" href="https://discourse.joplinapp.org/c/news/9">
|
||
<i class="fab fa-discourse"></i></i> Discuss on the forum
|
||
</a>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<footer class="darkblue-bg">
|
||
<div class="container">
|
||
<div class="row">
|
||
<div class="col-12 col-md-12 social-links">
|
||
<a href="https://twitter.com/joplinapp" title="Joplin Twitter feed"><i class="fab fa-twitter"></i></a>
|
||
<a href="https://mastodon.social/@joplinapp" title="Joplin Mastodon feed"><i class="fab fa-mastodon"></i></a>
|
||
<a href="https://www.patreon.com/joplin" title="Joplin Patreon"><i class="fab fa-patreon"></i></a>
|
||
<a href="https://discord.gg/VSj7AFHvpq" title="Joplin Discord chat"><i class="fab fa-discord"></i></a>
|
||
<a href="https://www.reddit.com/r/joplinapp/" title="Joplin Subreddit"><i class="fab fa-reddit"></i></a>
|
||
<a href="https://github.com/laurent22/joplin/" title="Joplin GitHub repository"><i class="fab fa-github"></i></a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="row bottom-links-row">
|
||
<div class="col-12 col-md-6">
|
||
<p class="text-center-sm">Copyright © 2016-2021 Laurent Cozic</p>
|
||
</div>
|
||
<div class="col-12 col-md-6">
|
||
<p class="text-right text-center-sm right-links">
|
||
<span class="footer-right">
|
||
<a href="/privacy/">Privacy Policy</a>
|
||
</span>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</footer> </div>
|
||
|
||
<script src="/js/script.js?h=46b3b58d72c94591621551affbb8c6e3"></script>
|
||
|
||
<script>
|
||
if (window.location.hostname !== 'localhost') {
|
||
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
|
||
ga('create', 'UA-103586105-1', 'auto');
|
||
ga('send', 'pageview');
|
||
}
|
||
</script> </body>
|
||
</html>
|