mirror of
https://github.com/khoaliber/khoj.git
synced 2026-03-02 21:19:12 +00:00
Index Parent Headings of Org-Mode Entries to Improve Search Context (#548)
### Overview The parent hierarchy of org-mode entries can store important context. This change updates OrgNode to track parent headings for each org entry and adds the parent outline for each entry to the index ### Details - Test search uses ancestor headings as context for improved results - Add ancestor headings of each org-mode entry to their compiled form - Track ancestor headings for each org-mode entry in org-node parser Resolves #85
This commit is contained in:
@@ -384,6 +384,45 @@ def sample_org_data():
|
||||
def get_sample_data(type):
|
||||
sample_data = {
|
||||
"org": {
|
||||
"elisp.org": """
|
||||
* Emacs Khoj
|
||||
/An Emacs interface for [[https://github.com/khoj-ai/khoj][khoj]]/
|
||||
|
||||
** Requirements
|
||||
- Install and Run [[https://github.com/khoj-ai/khoj][khoj]]
|
||||
|
||||
** Installation
|
||||
*** Direct
|
||||
- Put ~khoj.el~ in your Emacs load path. For e.g ~/.emacs.d/lisp
|
||||
- Load via ~use-package~ in your ~/.emacs.d/init.el or .emacs file by adding below snippet
|
||||
#+begin_src elisp
|
||||
;; Khoj Package
|
||||
(use-package khoj
|
||||
:load-path "~/.emacs.d/lisp/khoj.el"
|
||||
:bind ("C-c s" . 'khoj))
|
||||
#+end_src
|
||||
|
||||
*** Using [[https://github.com/quelpa/quelpa#installation][Quelpa]]
|
||||
- Ensure [[https://github.com/quelpa/quelpa#installation][Quelpa]], [[https://github.com/quelpa/quelpa-use-package#installation][quelpa-use-package]] are installed
|
||||
- Add below snippet to your ~/.emacs.d/init.el or .emacs config file and execute it.
|
||||
#+begin_src elisp
|
||||
;; Khoj Package
|
||||
(use-package khoj
|
||||
:quelpa (khoj :fetcher url :url "https://raw.githubusercontent.com/khoj-ai/khoj/master/interface/emacs/khoj.el")
|
||||
:bind ("C-c s" . 'khoj))
|
||||
#+end_src
|
||||
|
||||
** Usage
|
||||
1. Call ~khoj~ using keybinding ~C-c s~ or ~M-x khoj~
|
||||
2. Enter Query in Natural Language
|
||||
e.g "What is the meaning of life?" "What are my life goals?"
|
||||
3. Wait for results
|
||||
*Note: It takes about 15s on a Mac M1 and a ~100K lines corpus of org-mode files*
|
||||
4. (Optional) Narrow down results further
|
||||
Include/Exclude specific words from results by adding to query
|
||||
e.g "What is the meaning of life? -god +none"
|
||||
|
||||
""",
|
||||
"readme.org": """
|
||||
* Khoj
|
||||
/Allow natural language search on user content like notes, images using transformer based models/
|
||||
@@ -399,7 +438,7 @@ def get_sample_data(type):
|
||||
git clone https://github.com/khoj-ai/khoj && cd khoj
|
||||
conda env create -f environment.yml
|
||||
conda activate khoj
|
||||
#+end_src"""
|
||||
#+end_src""",
|
||||
},
|
||||
"markdown": {
|
||||
"readme.markdown": """
|
||||
|
||||
Reference in New Issue
Block a user