Welcome to Alfanous’s documentation!¶
Contents:
note This project needs more contributors and/or funding. If you like it, see how you can help?.
Alfanous Project¶
What is Alfanous?¶
Alfanous is a functional, dynamic, comprehensive Qur’an search engine that has been effectively designed to carry out simple or advanced Quranic searches. Alfanous uses a contemporary, highly developed approach to retrieve vital information, enabling stable efficient, speedy searches to be conducted. Alfanous aims to implement additional features such as highlight, site suggestions, scoring …etc to further improve your search experience. Alfanous understands the complex nature of the Arabic language and thus offers effective Arabic language processing, allowing the stemming and successful elimination of ambiguities. The Application Programming Interface can be used as a fundamental base for developers to build and enhance interface types within different systems, ex: Desktop GUI, Web-based UI…etc.
Authors: | Authors.rst |
---|---|
Release: | 0.7.10 Kahraman |
License: | AGPL |
Tracker: | Alfanous-team/alfanous/Issues |
Mailinglist: | alfanous@googlegroups.com |
IRC: | #alfanous @ freenode |
Website: | Alfanous.org |
Doc: | Readthedocs |
Feedbacks: | Alfanous Community Feedbacks |
Accounts: | @Facebook @Twitter @GooglePlus | @Sourceforge @Launchpad |
Usage¶
Install it from Pypi:
$ sudo pip install alfanous
You can use it from console:
$ alfanous-console -a search -q الله
$ alfanous-console -a search -q Allh
or from Python:
>>> import alfanous
>>> alfanous.search(u"الله")
>>> alfanous.do({"action":"search","query":u"الله"})
>>> alfanous.do({"action":"search","query":u"Allh"}) # Buckwalter transliteration
You can use it also from the web service:
http://alfanous.org/jos2 ? action=search & query=الله
http://alfanous.org/jos2 ? action=search & query=Allh
Contacts¶
- If you have a concrete bug report for Alfanous please go to the Issues Tracker, submit your report and tag it “bug”.
- If you want to participate in actively developing Alfanous,by testing read this How to help with testing? and by coding read this How to contribute?.
- If you want to help in Alfanous somehow, read this How you can help?.
- If you have a feature request, a proposition or a question for the project, you may use the mailing list or the IRC channel.
- If you want to criticize the project, we’ll be thankful if you resume your criticism and send it to the mailing list.
For anything else, you can contact us via the mailing list: alfanous@googlegroups.com.
Why Alfanous?¶
- Alfanous is FREE LIBRE OPEN SOURCE: Any one can use it and any one can contribute in coding, translating, design...etc. Alfanous will die only if his community dies!
- Alfanous is a Python API: that allows anyone to create independently a web interface, desktop interface , Android/Iphone/Windows phone interfaces , facebook/twitter/G+ applications ...and so on. The search process is too fast and too stable
- Alfanous is a research project : so we figure out features not only do what other websites/applications do.
- Alfanous has lot of features: see Search Features.
- Alfanous has many interfaces for many platforms: see Interfaces.
- Alfanous is FREE GRATIS: no payment, no ads.
see FAQ
Research Foundation¶
- Link to Magister Thesis Research gate Slideshare
- Link to General Behavior Schema.
Interfaces¶
- Alfanous Python API, source.
- JSON web interface 2, link, source.
- Django web interface [Multi-language], link , source.
- Web User interface for mobiles [Multi-language], link , source.
- Alfanous Desktop application (Windows: [Arabic] [English]; Ubuntu/Sabily), source.
- Alfanous Firefox toolbar, link, source.
- Alfanous Firefox search bar addon, link.
- Chrome extension (alpha), source.
- App for Nokia S60 (prototype), source.
- Facebook app (prototype), source.
- Third party:
- Alfanous4WinStore by FenyLab , source : here.
- Alfanous4WP7 by Abdelmoumen BOUABDALLAH , source: here.
- Alfanous4Iphone by i4islam, source: closed.
note: you can find the perspective interfaces under the milestone: Extra Interfaces.
Search Features¶
This is the list of search features already implemented, preview links use Alfanous web user interface: www.alfanous.org.
Exact Word: that is the simple search, eg: فأسقيناكموه
Phrase: for searching a whole phrase rather then independent words, eg:“رسول الله”
Logical relations
- Conjuction: for searching only the ayahs that contains two terms or more, eg: الصلاة + الزكاة.
- Disjunction (default): for searching all the ayahs that contains one of two terms or more, eg:الصلاة | الزكاة.
- Exception: for eleminating a term from search results, eg:الصلاة - الزكاة. You can understand it as “Ayahs that contains الصلاة but doesn’t contain الزكاة”.
Wildcards or Jokers: for search all words that share many letters, we have:
Fielded search: to search in more information of Quran , not only ayahs’text, we cite here the most significant fields for users:
- aya_id or رقم_الآية (Aya local ID): that’s the number of ayah inside its sura, use it for example to search all first ayahs (رقم_الآية:1).
- sura_id or رقم_السورة (Sura ID): use it with aya_id to specify an exact ayah,for example the first ayah of surate an-nass will be : aya_id:1 + sura_id:114.
- subject or موضوع (Topics): thats field contains all topics information, it will be helpful to search for a topic,eg: موضوع:الشيطان
for more fields, see: Fields
Intervals: this will be helpful in statistics or positions, for example search the divine name only in the first surahs: رقم_السورة :[1 الى 5 ] + الله
Partial vocalization: to consider given diacritics and ignore the others, eg: آية_ :’مَن’.
Word Properties: to search using root and type of words, type could be اسم, فعل or أداة,eg: {قول،اسم}.
Derivations
note: you can find the perspective search features under the milestones: Quranic Search Features Pack 1, Quranic Search Features Pack 2.
History¶
- 4 Mar2015: Launching “GUI 0.7.20 Kahraman release” of the GUI: clean, uptodate technologies, localization, translation search.
- 25 November 2013: Launching “API 0.7.01 BlackStone release” of the API: Extensible, More stable, and has Many features.
- 4 August 2013: Launching “WEB 0.7.5 alyaqoot release” of the web interface: based on Twitter Bootstrap, Responsive , Simple, Clean , Accept skins, and has many improvements and bug fixes. kacemb2
- 10 June 2013: Launching the django web interface, localizable, indexable, and has many search features, improvements and bug fixes. kacemb
- 26 June 2012: Launching the clickable feature, making most of results information searchable. chiffra1
- 02 January 2012: Launching new web interface for mobiles, uses: json_web_service, link: http://m.alfanous.org/, wiki: mobile_web_interface
- 19 September 2011: Launching a new web interface with a new design based on the json_web_service, the link is: http://wui.alfanous.org
- 26 July 2011: Launching json_web_service of Alfanous ,this service is available in the link: http://www.alfanous.org/json
- 06 March 2011:A Symposium in Riyadh - Saudi Arabia called NITS2011 or Third National Information Technology Symposium “Arabic an d Islamic Contents on the Internet”,the search paper published in Arabic with the name “Indexation/Search API in Holy Qur’an”
- 17 January 2010: Launching the arabic web-interface and reserving the domain alfanous.org_
- 29 November 2010: Uploading the english_interface of alfanous-Desktop version 0.4 beta for Windows and Linux
- 19 October 2010: A workshop in Damascus called “.......”,the search paper published in Arabic with the name “Indexation/Search API in Holy Qur’an”
- 21 July 2010: Uploading the arabic_interface of alfanous-Desktop version 0.3 beta for Windows
- 30 September 2009 - 6 July 2010: Graduation project for obtaining State-Engineer degree in National higher school of computer science (ESI ,ex.INI) - Algiers. The project was entitled “Developpement d’un moteur d’indexation et de recherche dans les documents coranique”.
Featured Posts¶
- Alfanous, mesin pencari ayat Al-Quran masa depan, ahmadbinhanbalblog
- الفانوس مشروع محرك بحث متقدم للقرآن الكريم, arabcrunch
- جزائري يطلق محرك بحث شامل للقرآن الكريم, onislam
- Alfanous – Quran Search Engine, muslihzarthblog
- إطلاق الإصدارة الجديدة لموقع الفانوس, kacemb
- إصدار نسخة “الياقوت” من موقع الفانوس للبحث القرآني المتقدّم, kacemb2
- مزية جديدة في الفانوس، أنقر ما تريد لتبحث من جديد!, chiffra1
- التحقق من أحد المنشورات حول الإعجاز العددي في القرآن الكريم, chiffra2
- AlFanous, Terdepan dalam Penelusuran Teks dan Informasi Ayat Al Qur’an, fath_multimedia
- Alfanous, Dakwah Al-Quran Lewat Search Engine, fimadani
Note: If you wrote -yourself- a good post about Alfanous in any language, please just tell us to refer it here!
Frequently.Asked.Questions¶
What is Alfanous?¶
see what-is-alfanous.
Why Alfanous?¶
see why-alfanous.
Why we called it Alfanous?¶
Alfanous is an arabic word “الفانوس” that means the Lantern. The name was inspired from a picture that contains a Mushaf, a chronometer and a lantern.
It didnt find the word X while I checked it exists!¶
Alfanous use the exact matching for words as default, so if you look for alzaytoon (الزيتون), you will not find it because it occurs in Quran as wazzaytoon (والزيتون). Yet, you will find it in suggestions or derivations. You can activate fuzzy search to search all close words to searched words.
- Why we use exact match?
- It is better for statistical search.
How you can help?¶
You can help us by:
- Spreading the word
- Following and sharing our social network pages : @Facebook @Twitter @GooglePlus
- Sharing a link to our website via your accounts in Social networks.
- Pointing skilled developers and Quranic researchers to the importance of the project.
- Writing articles about the project in blogs, newspapers.
- Showing a banner on your Blog/Website.
- creating an ad for alfanous links using Google adwords or facebook if you’re familiar with that (btw,it needs money)
- Managing and Animating our social network pages with news and daily posts [Arabic, English]: @Facebook @Twitter @GooglePlus
- Translating project interfaces to your language , we are using Launchpad platform for translation, link here.
- Testing the modules and releases, Reporting bugs , see How to report a bug? and How to help by testing? .
- Fixing bugs , Coding new features or Developing new interfaces , See: `How to Contribute?`_ .
- Designing Icons, Logoes , Banners.
- Packaging the project for different systems: Windows, Linux distributions, MacOs.
- Donating/Supporting to the project: We’re stuck looking for possible ways for donations/Funding. Any help is appreciated!
For more discussion, you can contact us via the mailing list : alfanous@googlegroups.com
How to report a bug?¶
If you have a concrete bug report for Alfanous please go to the Issues Tracker, submit your report and tag it “bug”.
How to contribute by translation?¶
- Contact us to confirm the translation need into your language and to request the PO file.
- Use Use Poedit or Virtaal to edit it and complete the translation.
- Send us the update po file so we can include it in the website.
How to contribute by donation?¶
Funding is a critical point for our project. Whereas we’re stuck looking for possible ways to get. Donations as far as we tried is so restricted in our home country so Any help in that is appreciated!
Any way you can:
- Pay our web hosting monthly bills directly, we create an account for you in the host to do that.
- Lead an advertising compaign for the project website through Google adwords or Facebook.
- Incubate the whole project in another country.
How to contribute by coding?¶
If you are a coder, and want to participate in actively developing Alfanous :
- Learning Git is essential, read about Set up Git and you can also try it online here!
- Browse a milestone and choose an open issue (or more) that fits your skills.
- To get more information about any issue you can contact us on mailing list: or leave a comment on the issue.
- Start with forking the repository and preparing your development environment, see How to prepare your development environment to contribute?.
- Prepare your changes, test them and then make a pull request to alfanous-team when you think your code is ready.
- The project is not well documented but you may find helpful information in Readme files:
See also How you can help?
How to help by testing?¶
If you want to help us testing the project modules, just follow these steps and Sooner as you encounter a problem, stop testing and submit it as an issue in our issue tracker and then send about it to the mailing list (alfanous@googlegroups.com):
Get the code source:
- clone the git repo from github: $ git clone https://github.com/Alfanous-team/alfanous.git
- or download it as a zipfile
Run the build:
Install all building dependencies: pyparsing, pyside, epydoc, sphinx, Babel.
Go to the root path of the code source and execute this command
$ make build
Possible Problems:
/bin/sh: python2: not found : if you dont have the command “python2”, create one using a symbolic link
$ python --version Python 2.7.4 $ sudo ln -s /usr/bin/python2.7 /usr/bin/python2
ImportError: No module named pyparsing : you need to install pyparsing python library
$ sudo pip pyparsing
Install the API:
Also in the root path of the code source, execute the command
$ make install_api_no_arguments
Test the console interface, it provides results in Json format:
$ alfanous-console -h $ alfanous-console -a search -q qawol $ alfanous-console -a search -q الصلاة+الزكاة $ ...
Test the basic script:
$ cd src/alfanous-tests $ python sample.py
Test the desktop interface:
$ cd src/alfanous-desktop $ python Gui.py
Test the installation of alfanous-desktop as a library
$ sudo python setup.py install $ alfanous-desktop
Test the json output system II
install it in apache as a cgi script
# Install apache2 first $ sudo make install_jos2
test it in browser by checking those links
- http://alfanous.local/cgi-bin/alfanous_json2.py
- http://alfanous.local/cgi-bin/alfanous_json2.py?action=search&query=qawol
- http://alfanous.local/cgi-bin/alfanous_json2.py?action=suggest&query=مءصدة
- http://alfanous.local/cgi-bin/alfanous_json2.py?action=search&query=%D8%A7%D9%84%D9%83%D9%88%D8%AB%D8%B1&sortedby=mushaf&page=1&word_info=true&highlight=css&script=standard&prev_aya=true&next_aya=true&sura_info=true&aya_position_info=true&aya_theme_info=true&aya_stat_info=true&aya_sajda_info=true&annotation_word=true&annotation_aya=true&recitation=1
- ...
Test Django app (don’t forget to install django)
run the server
$ cd src/alfanous-django $ python manage.py runserver
test it in browser by checking this link
Test Firefox toolbar
package it
$ make dist_xpi
use it, you’ll find the package in output folder with the extension .xpi
Test Ubuntu/Sabily package
run the command of packaging
$ make dist_deb
Add sabily repository and test the package
Test Windows Installer script (later)
Test MacOs package (later)
Test PyCorpus (later)
See also How you can help?
How to prepare your development environment to contribute?¶
Best OS for that is Ubuntu (>11.10).
First at all, create an account in Github and make your own fork of alfanous-team/alfanous (Fork button is top-right).
Secondly, install git-scm and then clone locally your fork :
git clone LINK_OF_GITHUB_FORK.
-
then run in the root of your local repo:
$ make build
then run also in the same path:
$ sudo make install_api_no_arguments
test the installation with this command:
$ alfanous-console -h
Forth, prepare your dev tool :
- if you want work on web tasks, install aptana with pydev plugin (install apache2 also for local tests).
- else install eclipse with pydev plugin.
- or you can just use a simple text editor.
You can also use git with eclipse, by installing EGit.
How API works?¶
TODO
Install python API¶
$ sudo pip install alfanous
or
$ sudo easy_install alfanous
or from source code:
$ make build
$ sudo make install_api_no_argument
Install Desktop Application¶
Windows XP/VISTA/SEVEN:
Download the installer from sourceforge: last version
- Ubuntu-Based:
- you can add Alfanous ppa repo on Launchpad and install alfanous from it:
add-apt-repository ppa:team4alfanous/alfanous && sudo apt-get -q update apt-get install alfanous
Fedora-Based:
For Fedora 21 run the following as root:
cd /etc/yum.repos.d/ wget http://download.opensuse.org/repositories/home:Kenzy:tahadz/Fedora_21/home:Kenzy:tahadz.repo yum install alfanous
For Fedora 20 run the following as root:
cd /etc/yum.repos.d/ wget http://download.opensuse.org/repositories/home:Kenzy:tahadz/Fedora_20/home:Kenzy:tahadz.repo yum install alfanous
OpenSuse-Based:
For openSUSE 13.2 run the following as root:
zypper addrepo http://download.opensuse.org/repositories/home:Kenzy:tahadz/openSUSE_13.2/home:Kenzy:tahadz.repo zypper refresh zypper install alfanous
Archlinux-Based:
yaourt alfanous yaourt alfanous-git # nightly build
- Other:
Install from the source by downloading the tarbal and executing those commands carefully:
// ====> install build dependencies: pyparsing, pyside, epydoc, sphinx, Babel. $ make build $ sudo make install_api_no_arguments # to install the api and alfanous-console. $ sudo make install_desktop_no_arguments # to install alfanous-desktop.
Code Structure¶
This is a quick view of the source code structure of Alfanous project explaining the different packages and modules.
Packages¶
alfanous: | the main API of the project, offers the search features. |
---|---|
alfanous-import: | |
a library responsible of all management tasks of Quranic & Linguistic resources. | |
alfanous-cgi: | a small script to execute the API in a web CGI environment. |
alfanous-desktop: | |
a desktop interface made by QT & PyQt. | |
alfanous-django: | |
a django app replaces the old web user interface and also the cgi script. | |
alfanous-labs: | all related libraries that still in alpha phase. |
alfanous-tests: | scripts used to test the different modules of the API. |
PyCorpus: | a library used to parse & understand Arabic Quranic Corpus. |
PyZekrModels: | a library used to parse Zekr Translations Models. |
API Modules, Files (alfanous)¶
main.py: | the main module that relay all the modules. |
---|---|
console.py: | a console interface for the API. |
Outputs.py: | the programming interface, responsible of the output of all results. |
Data.py: | the manager of paths and Data reading and loading. |
TextProcessing.py: | |
the module responsible of searched/indexed text processing. | |
QueryProcessing.py: | |
the module responsible of search query processing. | |
ResultsProcessing.py: | |
the module responsible of results processing. | |
Indexing.py: | the manager of the indexes reading. |
Searching.py: | the module responsible of the basic search operation. |
Suggestions.py: | the module responsible of suggestions. |
Romanization.py: | |
the module responsible of romanization systems. | |
Threading.py: | the module responsible of multi-processing during the search. |
Constants.py: | a module that contains some constants used in the API. |
Exceptions.py: | a module that contains some exceptions used in the API. |
Misc.py: | a pre-implementing test module. |
Support.*: | Some third-party libraries. |
configs.*: | Configuration files in a Json format. |
resources.*: | Quranic & Lingustic data in a Json format to replace the binary sqlite database. |
dynamic_resources.*: | |
Compiled linguistic data to python modules to gain speed. | |
indexes.*: | All needed indexes on Whoosh indexes format. |
setup.py: | the script of installation & packaging (setuptools) |
ez_setup.py: | an alternatif for setuptools library. |
Importer Modules (alfanous-import)¶
main.py: | the main module that relays all the modules and offers a console interface. |
---|---|
Downloader.py: | download online resources. |
Parser.py: | parse the resources. |
Standardizer.py: | |
convert the resources to a standard format (not implemented). | |
Importer.py: | import the resources into the main database. |
Transformer.py: | transfer&convert the resources from the main database into Whoosh indexes. |
Updater.py: | update the data in API based on actual resources. |
initial_importing.py: | |
a script used the first-time to load many resources (deprecated). | |
setup.py: | the script of installation & packaging (setuptools). |
Alfanous API¶
Build¶
The API uses many critical resources that must be downloaded and/or prepared to be used. To do that, just run this command in the root path of the project
Install all building dependencies: pyparsing, epydoc, sphinx.
(ubuntu 12.04):
$ sudo apt-get install python-qt4 qt4-dev-tools python-qt4-dev pyqt4-dev-tools $ sudo apt-get install python-distutils-extra $ sudo easy_install pyparsing epydoc sphinx
Run the build command:
$ cd ../../ $ make build
For more details check Makefile
Install¶
To install the API from the source (After Build ):
$ sudo python setup.py install
A console interface will be installed automatically with the API:
$ alfanous-console -h
usage: alfanous-console [flags]
Quick Start¶
# coding: utf-8
# import Output object
from alfanous.Outputs import Raw
# import default Paths
from alfanous.Data import Paths
# Initialize search engines
RAWoutput = Raw(
QSE_index = Paths.QSE_INDEX , # Quranic Main index path
TSE_index = Paths.TSE_INDEX, # Translations index path
WSE_index = Paths.WSE_INDEX, # Quranic words index path
Recitations_list_file = Paths.RECITATIONS_LIST_FILE,
Translations_list_file = Paths.TRANSLATIONS_LIST_FILE ,
Hints_file = Paths.HINTS_FILE,
Stats_file = Paths.STATS_FILE,
Information_file = Paths.INFORMATION_FILE
)
## prepare a suggestion query
suggest_flags = {
"action":"suggest",
"query": "ابراهيم"
}
results = RAWoutput.do( suggest_flags )
print "number of missed words", len(results["suggest"])
## prepare a search query
search_flags = {
"action":"search",
"query": "الحمد لله",
"sortedby":"mushaf",
"reverse_order": False,
"page": 1,
"word_info": True,
"highlight": "css",
"script": "standard",
"sura_info": True,
"aya_position_info": True,
"aya_theme_info": False,
"aya_stat_info": False,
"aya_sajda_info": True,
"translation": 2,
}
results = RAWoutput.do( search_flags )
print "runtime", results["search"]["runtime"]
print "total", results["search"]["interval"]["total"]
see sample.py.
Flags¶
number | flag | related action | related unit | description | default value | accepted values |
1 | action | <none> | <none> | action to perform | “search” | search | suggest | show |
2 | unit | search, suggest | <none> | search unit | “aya” | aya | word | translation |
2 | ident | <all> | <all> | identifier of requester [experimental] | “undefined” | undefined |
3 | platform | <all> | <all> | platform used by requester | “undefined” | undefined | wp7 | s60 | android | ios | linux | window |
4 | domain | <all> | <all> | web domain of requester if applicable | “undefined” | * |
5a | query | search,suggest | <all> | query attached to action | “” | * |
5b | query | show | <all> | query attached to action | “” | all | translations |recitations | information | hints | surates | chapters | defaults | flags | fields | fields_reverse | errors | domains | help_messages | roots |
6 | highlight | search | <all> | highlight method | “css” | css | html | genshi | bold | bbcode |
7 | script | search | aya, word | script of aya text | “standard” | standard | uthmani |
8 | vocalized | search | aya, word | enable vocalization of aya text | “True” | True | False |
9 | recitation | search | aya | recitation id | “1” | 1 to 30 |
10 | translation | search | aya, trans | translation id | “None” | * |
11 | romanization | search | aya, word | type of romanization | “none” | none | buckwalter | iso | arabtex |
12a | view | search | aya, word | pre-defined configuration for view | “custom” | minimal | normal | full | statistic | linguistic | custom |
12b | view | search | translation | pre-defined configuration for view | “custom” | minimal | normal | full | custom |
13 | prev_aya | search | aya | enable previous aya retrieving | “False” | True | False |
14 | next_aya | search | aya | enable next aya retrieving | “False” | True | False |
15 | sura_info | search | aya | enable sura information retrieving | “True” | True | False |
16 | sura_stat_info | search | aya | enable sura stats retrieving | “False” | True | False |
17 | word_info | search | aya, word | enable word information retrieving | “True” | True | False |
17a | word_synonyms | search | aya | enable retrieving of keyword synonyms | “False” | True | False |
17b | word_derivations | search | aya | enable retrieving of keyword derivations | “True” | True | False |
17c | word_vocalizations | search | aya | enable retrieving of keyword vocalizations | “True” | True | False |
18 | aya_position_info | search | aya | enable aya position information retrieving | “True” | True | False |
19 | aya_theme_info | search | aya | enable aya theme information retrieving | “True” | True | False |
20 | aya_stat_info | search | aya | enable aya stat information retrieving | “True” | True | False |
21 | aya_sajda_info | search | aya | enable aya sajda information retrieving | “True” | True | False |
22 | annotation_word | search | aya, word | enable query terms annotations retrieving | “False” | True | False |
23 | annotation_aya | search | aya | enable aya words annotations retrieving | “False” | True | False |
24 | sortedby | search | aya | sorting order of results | “score” | total | score | mushaf | tanzil | subject |
25 | offset | search | <all> | starting offset of results | “1” | 1 to 6236 |
26 | range | search | <all> | range of results | “10” | 1 to 25 |
27 | page | search | <all> | page number [override offset] | “1” | 1 to 6236 |
28 | perpage | search | <all> | results per page [override range] | “10” | 1 to 25 |
29 | fuzzy | search | aya | fuzzy search [exprimental] | “False” | True | False |
30 | aya | search | word,trans | enable retrieving of aya text | “True” | True | False |
Advanced Query Examples¶
Aya Search:
- Simple search: الحمد
- Phrases : “الحمد لله”
- Logical relations - ANDNOT : (الصلاة - الزكاة)
- Logical relations - AND : الصلاة + الزكاة
- Logical relations - OR : الصلاة | الزكاة
- Joker * : *نبي*
- Joker ? : نعم؟
- Fielded search : سورة:يس ( look for other Fields_ )
- Fielded search (2) : سجدة:نعم
- Intervals : رقم_السورة:[1 الى 5] و الله
- Partial vocalization : آية_:’مَن’
- Tuples (root,type= أداة | اسم | فعل) as: {قول،اسم}
- Derivations - lemma : >مالك
- Derivations - root : >>مالك
Translation Search:
- Exact search: god
- Phrase search: “seven heavens”
- Logical relations - OR: prayer ANDNOT charity
- Logical relations - AND: prayer AND charity
- Logical relations - OR: prayer OR charity
- Wildcards - Joker *: pray*
- Wildcards - Joker ?: produc?
- Fielded search: lang:fr
- Fielded search (2) : author:Shakir
Fields¶
- Aya Search Fields:
n | عربي | English | Values | Description |
1 | رقم | gid | 1 to 6236 | Global order of Aya in the whole Quran |
2 | رقم_الآية | aya_id | 1 to 300 | order of Aya inside its Sura |
3 | آية | aya | Text | Aya non-vocalized standard text ( used for search) |
4 | آية_ | aya_ | Text | Aya vocalized standard text ( used for show/search) |
5 | عثماني | uth | Text | Aya vocalized uthmani text ( used for show/search) |
6 | عثماني_ | uth_ | Text | Aya vocalized uthmani text ( used for show) |
7 | موضوع | subject | Text | Thematic Division: Chapter > Topic > Subtopic |
8 | فصل | chapter | Text | Thematic Division: Chapter > Topic > Subtopic |
9 | فرع | topic | Text | Thematic Division: Chapter > Topic > Subtopic |
10 | باب | subtopic | Text | Thematic Division: Chapter > Topic > Subtopic |
11 | رقم_السورة | sura_id | 1 to 114 | Order of Sura in Mus-haf |
12 | سورة | sura_arabic | Text | Arabic Name of Sura |
12+ | سورة_إنجليزي | sura_english | Text | English Name of Sura |
12+ | سورة_تهجئة | sura | Text | Romanized Name of Sura |
13 | نوع_السورة | sura_type_arabic | مدنية|مكية | Revelation place of Sura [Arabic] |
13+ | نوع_السورة_إنجليزي | sura_type | Meccan|Medinan | Revelation place of Sura [English] |
14 | ترتيب_السورة | sura_order | 1 to 114 | Revelation order of Sura |
15 | جزء | juz | 1 to 30 | Structural Division : Juz > Hizb > Rub |
16 | حزب | hizb | 1 to 60 | Structural Division : Juz > Hizb > Rub |
17 | نصف | nisf | 1 to 2 | Deprecated |
18 | ربع | rub | 1 to 4 | Structural Division : Juz > Hizb > Rub |
19 | صفحة | page | Number | Structural Division : Page |
19+ | صفحة_هندي | page_IN | Number | Structural Division : Page (INDIAN MUSHAF) |
20 | منزل | manzil | 1 to 7 | Structural Division : Manzil > Ruku |
21 | ركوع | ruku | Number | Structural Division : Manzil > Ruku |
22 | سجدة | sajda | نعم | لا | Test existence of a Sajda |
23 | رقم_السجدة | sajda_id | 1 | 14 | Order of the Sajda if exist |
24 | نوع_السجدة | sajda_type | واجبة|مستحبة | Type of the Sajda if exist |
25 | ح_س | s_l | Number | Number of letters in Sura |
26 | ك_س | s_w | Number | Number of words in Sura |
27 | ج_س | s_g | Number | Number of God’s names in Sura |
28 | آ_س | s_a | Number | Number of Ayas in Sura |
29 | ر_س | s_r | Number | Number of Ruku-s in Sura |
30 | ح_آ | a_l | Number | Number of letters in Aya |
31 | ك_آ | a_w | Number | Number of words in Aya |
32 | ج_آ | a_g | Number | Number of God’s names in Aya |
SortedBy Options¶
- Aya Search:
Option | Description |
score | The relevance of the results compared to the query keywords |
mushaf | The default order of ayas in Mus-haf |
tanzil | The revelation order |
subject | The alphabetic order of the values for subjects fields |
ayalenght | The length of ayah from the shortest to the longest |
FIELD | The numerical order or alphabetic order of a costum field (see Fields_ ) |
Schema Samples¶
- Aya Search:
Suggestions¶
flags:
{
"action"="suggest",
"query"="مءصدة"
}
response:
{
"suggest": [
["\u0645\u0621\u0635\u062f\u0629",
["\u0645\u0642\u062a\u0635\u062f\u0629", "\u0645\u0624\u0635\u062f\u0629"]
]
],
"error": {
"msg": "success ## action=suggest ; query=\u0645\u0621\u0635\u062f\u0629",
"code": 0
}
}
Results¶
flags:
{
"action":"search",
"query": "الكوثر",
"sortedby":"score",
"page": 1,
"word_info":True,
"highlight":"css",
"script": "standard",
"prev_aya": True,
"next_aya": True,
"sura_info": True,
"aya_position_info": True,
"aya_theme_info": True,
"aya_stat_info": True,
"aya_sajda_info": True,
"annotation_word": True,
"annotation_aya": True,
"translation":"None",
"recitation": 1
}
response:
{
"search": {
"runtime": 1.0951571464538574,
"interval": {
"start": 1,
"total": 1,
"end": 1
}
"words": {
"global": {
"nb_words": 1,
"nb_matches": 1,
"nb_vocalizations": 1,
},
"individual": {
"1": {
"word": "\u0627\u0644\u0643\u0648\u062b\u0631",
"nb_matches": 1,
"nb_ayas": 1,
"nb_vocalizations": 1,
"vocalizations": ["\u0627\u0644\u0652\u0643\u064e\u0648\u0652\u062b\u064e\u0631\u064e"],
},
},
},
"ayas": {
"1": {
"identifier": {
"gid": 6205,
"aya_id": 1,
"sura_id": 108,
"sura_name": "\u0627\u0644\u0643\u0648\u062b\u0631",
},
"aya": {
"id": 1,
"text": "\u0625\u0650\u0646\u0651\u064e\u0627 \u0623\u064e\u0639\u0652\u0637\u064e\u064a\u0652\u0646\u064e\u0627\u0643\u064e <span class=\"match term0\">\u0627\u0644\u0652\u0643\u064e\u0648\u0652\u062b\u064e\u0631\u064e</span>",
"recitation": "http://www.everyayah.com/data/Abdul_Basit_Murattal_64kbps/108001.mp3",
"translation": null,
"prev_aya": {
"id": 7,
"sura": "\u0627\u0644\u0645\u0627\u0639\u0648\u0646",
"text": "\u0648\u064e\u064a\u064e\u0645\u0652\u0646\u064e\u0639\u064f\u0648\u0646\u064e \u0627\u0644\u0652\u0645\u064e\u0627\u0639\u064f\u0648\u0646\u064e",
},
"next_aya": {
"id": 2,
"sura": "\u0627\u0644\u0643\u0648\u062b\u0631",
"text": "\u0641\u064e\u0635\u064e\u0644\u0651\u0650 \u0644\u0650\u0631\u064e\u0628\u0651\u0650\u0643\u064e \u0648\u064e\u0627\u0646\u0652\u062d\u064e\u0631\u0652",
},
},
"sura": {
"id": 108,
"name": "\u0627\u0644\u0643\u0648\u062b\u0631",
"type": "\u0645\u0643\u064a\u0629",
"order": 15,
"ayas": 3,
"stat": {
"words": 10,
"letters": 42,
"godnames": 0,
},
},
"theme": {
"chapter": "\u0623\u0631\u0643\u0627\u0646 \u0627\u0644\u0625\u0633\u0644\u0627\u0645 ",
"topic": "\u0627\u0644\u062d\u062c \u0648\u0627\u0644\u0639\u0645\u0631\u0629 ",
"subtopic": null
},
"position": {
"rub": 0,
"manzil": 7,
"ruku": 550,
"hizb": 60,
"page": 602
},
"sajda": {
"exist": false,
"id": null,
"type": null
},
"stat": {
"letters": 16,
"godnames": 0,
"words": 3
},
"annotations": {
"1": {
"arabicroot": null,
"arabicmood": null,
"number": null,
"spelled": "\u0627\u0646\u0627\u0653",
"aspect": null,
"word_gid": 75871,
"word_id": 1,
"mood": null,
"arabicspecial": "\u0625\u0650\u0646\u0651",
"state": null,
"arabiclemma": "\u0625\u0650\u0646\u0651",
"gid": 116333,
"type": "Particles",
"aya_id": 1,
"arabictoken": null,
"form": null,
"pos": "Accusative particle",
"arabiccase": "\u0645\u0646\u0635\u0648\u0628",
"part": "\u062c\u0630\u0639",
"normalized": "\u0625\u0646\u0627\u0653",
"case": "Accusative case",
"sura_id": 108,
"word": "\u0625\u0650\u0646\u0651\u064e\u0627\u0653",
"derivation": null,
"arabicpos": "\u062d\u0631\u0641 \u0646\u0635\u0628",
"person": null,
"token": null,
"gender": null,
"voice": null,
"order": 1
},
"2": {
"arabicroot": "\u0639\u0637\u0648",
"arabicmood": null,
"number": "\u062c\u0645\u0639",
"spelled": "\u0627\u0639\u0637\u064a\u0646\u0670\u0643",
"aspect": "Perfect verb",
"word_gid": 75872,
"word_id": 2,
"mood": null,
"arabicspecial": null,
"state": null,
"arabiclemma": null,
"gid": 116335,
"type": "Verbs",
"aya_id": 1,
"arabictoken": null,
"form": "Fourth form",
"pos": "Verb",
"arabiccase": null,
"part": "\u062c\u0630\u0639",
"normalized": "\u0623\u0639\u0637\u064a\u0646\u0670\u0643",
"case": null,
"sura_id": 108,
"word": "\u0623\u064e\u0639\u0652\u0637\u064e\u064a\u0652\u0646\u064e\u0670\u0643\u064e",
"derivation": null,
"arabicpos": "\u0641\u0639\u0644",
"person": "\u0645\u062a\u0643\u0644\u0645",
"token": null,
"gender": "\u0645\u0630\u0651\u0643\u0631",
"voice": null,
"order": 1
},
"3": {
"arabicroot": null,
"arabicmood": null,
"number": null,
"spelled": "\u0671\u0644\u0643\u0648\u062b\u0631",
"aspect": null,
"word_gid": 75873,
"word_id": 3,
"mood": null,
"arabicspecial": null,
"state": null,
"arabiclemma": null,
"gid": 116337,
"type": "determiner",
"aya_id": 1,
"arabictoken": "\u0627\u0644",
"form": null,
"pos": null,
"arabiccase": null,
"part": "\u0633\u0627\u0628\u0642",
"normalized": "\u0671\u0644\u0643\u0648\u062b\u0631",
"case": null,
"sura_id": 108,
"word": "\u0671\u0644\u0652\u0643\u064e\u0648\u0652\u062b\u064e\u0631\u064e",
"derivation": null,
"arabicpos": null,
"person": null,
"token": "al",
"gender": null,
"voice": null,
"order": 1
}
},
},
},
"translation_info": {},
},
"error": {
"code": 0,
"msg": "success ## action=search ; query=\u0627\u0644\u0643\u0648\u062b\u0631",
}
}
Translations¶
TODO
Information¶
flags:
{
"action"="show",
"query"="information"
}
response:
{
"show": {
"information": {
"engine": "Alfanous",
"wiki": "http://wiki.alfanous.org/doku.php?id=json_web_service",
"description": "Alfanous is a Quranic search engine provides simple and advanced search services in the diverse information of the Holy Quran .",
"author": "Assem chelli",
"version": "0.5",
"contact": "assem.ch@gmail.com",
"console_note": "this is console interface of Alfanous, try -h to get help ",
"json_output_system_note": "\n This is the <a href='http://json.org/'>JSON</a> output system of <a href=\"http://wiki.alfanous.org\">Alfanous</a> project .This feature is in Alpha test and the Json schema may be it's not stable . We are waiting for real feadbacks and suggestions to improve its efficacity,quality and stability. To contact the author ,please send a direct email to <b> assem.ch[at]gmail.com</b> or to the mailing list <b>alfanous [at] googlegroups.com</b>\n <br/><br/> For more details visit the page of this service <a href=\"http://wiki.alfanous.org/doku.php?id=json_web_service\">here</a>\n "
}
},
"error": {
"msg": "success ## action=show ; query=information",
"code": 0
}
}
Recitations¶
flags:
{
"action"="show",
"query"="recitations"
}
response (sample):
{
"show": {
"recitations": {
"45": {
"bitrate": "192kbps",
"name": "English/Ibrahim Walk TEST",
"subfolder": "English/Ibrahim_Walk_192kbps_TEST"
},
"54": {
"bitrate": "128kbps",
"name": "Salah Al Budair",
"subfolder": "Salah_Al_Budair_128kbps"
}
}
},
"error": {
"msg": "success ## action=show ; query=recitations",
"code": 0
}
}
Fields¶
flags:
{
"action"="show",
"query"="fields"
}
response:
{
"show": {
"fields": {
"جزء": "juz",
"عثماني ": "uth",
"نوع_السورة": "sura_type",
"رقم_السجدة": "sajda_id",
"صفحة": "page",
"ربع": "rub",
"ر_س": "s_r",
"ركوع": "ruku",
"رقم_السورة": "sura_id",
"آ_س": "s_a",
"آية_": "aya_",
"موضوع": "subject",
"ج_س": "s_g",
"ك_آ": "a_w",
"فصل": "chapter",
"ح_آ": "a_l",
"سورة": "sura",
"فرع": "topic",
"آية": "aya",
"رقم_الآية": "aya_id",
"عثماني_": "uth_",
"ك_س": "s_w",
"نوع_السجدة": "sajda_type",
"رقم": "gid",
"باب": "subtopic",
"نصف": "nisf",
"ح_س": "s_l",
"حزب": "hizb",
"منزل": "manzil",
"ج_آ": "a_g",
"سجدة": "sajda",
"ترتيب_السورة": "sura_order"
}
},
"error": {
"msg": "success ## action=show ; query=fields",
"code": 0
}
}
JSON Web Service II¶
This is the JSON output system version 2 of Alfanous project. This feature is in Alpha test and the JSON schema may be it’s not stable. We are waiting for real feadbacks and suggestions to improve its efficacy, quality and stability. To contact us, please send an email to the mailing list <alfanous@googlegroups.com>. If you don’t know what is JSON, See: Wikipedia or the Official_Website_of_JSON. It contains many JSON parsing libraries for most programming languages.
Terms of use¶
- This service is free to use.
- Don’t name your application “Alfanous” before we are okey about that.
- We highly recommend to refer Alfanous engine somewhere in your pages using icons or texts like “Alfanous engine”, “Powered by Alfanous.org”, or “Based on Alfanous.org” linked to “http://www.alfanous.org” or “http://www.alfanous.org/jos2”.
- We highly recommend to describe clearly somewhere in your application the relation to the whole Alfanous project, such as an about button.
- Art works you may need are available here, the Art is licenced with AGPL license.
Limitations¶
- 100 keywords at most
- Ayah word annotations are enabled for only one ayah
Quering Syntax¶
To get JSON information , use this syntax : http://www.alfanous.org/jos2?ARGUMENT such as ARGUMENT is compound of those flags: API flags.
Examples¶
- http://www.alfanous.org/jos2?action=search&unit=aya&query=الحمد&highlight=bbcode&sortedby=tanzil&page=2&traduction=1&fuzzy=True
- http://www.alfanous.org/jos2?action=show&query=recitations
- http://www.alfanous.org/jos2?action=show&queryfields
- http://www.alfanous.org/jos2?action=show&query=All
- http://www.alfanous.org/jos2?action=show&query=translations
- http://www.alfanous.org/jos2?action=show&query=errors
- http://www.alfanous.org/jos2?action=suggest&unit=aya&query=مءصدة
Response Samples¶
See API Schema Samples.
Advanced Query Examples¶
- Simple search: query=الحمد
- Phrases : query=”الحمد لله”
- Logical relations - ANDNOT : query=(الصلاة - الزكاة)
- Logical relations - AND : query=الصلاة + الزكاة
- Logical relations - OR : query=الصلاة | الزكاة
- Joker * : query=*نبي*
- Joker ? : query=نعم؟
- Fielded search : query=سورة:يس , look for Fields
- Fielded search (2) : query=سجدة:نعم ,
- Intervals : query=رقم_السورة:[1 الى 5] و الله
- Partial vocalization : query=آية_:’مَن’
- Tuples (root,type=أداة | اسم | فعل): query={قول،اسم}
- Derivations - lemma : query=>مالك
- Derivations - root : query=>>مالك
Demoes¶
(No demoes yet! if you have a demo, we’ll be happy to refer it here)
Who use this?¶
- If you are using this service, We want to make Alfanous more helpful. We will be happy to know about your applications.
- Official web interface by AlfanousTeam - alfanous.org
- Application for Android by FenyLab - link
- Application for iPhone/iPad by iPhoneIslam - link
- Qoogle - Application for Android by Amr Ebada - link
- aQuran by Muhammad Fawwaz Orabi link
AlfanousDesktop Interface¶
A PyQt GUI interface for alfanous Quranic search engine API.
Requirements¶
How to contribute?¶
- Browse the issues under the milstone: AlfanousDesktop 0.7
- Read about how to use Alfanous API, Qt designer, PyQt
- Fork the source, Do your changes then make a pull request to Alfanous-team/alfanous
Building systems¶
- deb package for ubuntu and derivatives: https://code.launchpad.net/~team4alfanous/+recipe/alfanous-daily
- rpm package for redhat, fedore, opensuse,centos: https://build.opensuse.org/package/show/home:Kenzy:tahadz/alfanous
notes:
- The UI folder contains forms and dialogs , you can open them with Qt designer.
- Run the command “make qt_all” in project root to compile qt resources to a python module.
- Gui.py contains the main code, it’s unclean and need cleaning or rewriting from the scratch.
Web User Interface [Django]¶
This is the source code for alfanous.org, it is a django app that use Alfanous API.
- how to contribute on it?
- contact mailing list alfanous [at] googlegroups [dot] [com]
Highlights¶
screen shots and features , used technologies
- Django
- JSON
- XHTML, CSS2 + Some CSS3 for web font
- JS, jQuery
- Hash
- OpenSearch
- OpenGraph
Test¶
Install the requirements: Django, Alfanous API .
Use the manage.py script to synchronize the database and run the local server:
$ python manage.py syncdb $ python manage.py runserver
- changes made by zsmahi
- url in action attribut changed from “http://www.alfanous.org/json” to “http://www.alfanous.org/” attribut target=”_blank” added to show results in new tab // without this attribut results won’t be showen
Abandoned.
Alfanous - Advanced Quranic Search Engine
We gratefully acknowledge contributions from the following. Please let us know if we missed anyone, thanks :)
Maintainers¶
Assem BigOther @assem-ch (API)
Muhammad Shaban @MuhammadShaban (packaging to Fedora Linux)
Zaki Smahi @zsmahi (Firefox toolbar)
Muslih Aqqad @muslih (Design)
Zineb Laouici @Zinebl (Facebook/G+ pages)
- We are looking for maintainers for those:
- Android app(Java)
- Desktop application (PyQt)
- Website (Django)
- Packaging to Ubuntu/Debian
- Packaging to Archlinux
- Windows Installer(py2exe, nsis)
- Twitter account
If you are interested, contact @assem-ch or mailing list <alfanous[at]googlegroups[dotcom]>
Contributors¶
Coding¶
- API & JSON interface: A~CH
- Desktop Interface: A~CH, Sohaib Afifi
- Web Interface: A~CH , Walid Ziouche, Abdellah Chelli , Mouad Debbar, Mennouchi Islam Azeddine, Muslih al aqaad, Tedjeddine Meabeo , , Ahmed Ramadan
- Firefox toolbar: Zakaria Smahi
- PyArabic(Integrated): Taha Zerrouki, A~CH, Ahimta~
- Windows Store : Mohamed Anas Mostefaoui(FenyLab)
Research¶
- 2009-2010: Engineer Thesis
- Title: Développement d’un moteur de recherche et d’indexation dans les documents coraniques
- University: ESI - Algiers
- Collaborators: A~CH (Student), Merouane Dahmani (Student), Taha Zerrouki ( Supervisor), Pr. Amar Balla ( Supervisor)
- March 2011: Arabic Research paper
- Title: An Application Programming Interface for indexing and search in Noble Quran
- Original title: مكتبة برمجية للفهرسة والبحث في القرآن الكريم
- Conference: NITS 2011 KSA
- Collaborators: A~CH, Merouane Dahmani, Taha Zerrouki, Pr. Amar Balla
- May 2012: English Research paper
- Title:. Advanced Search in Quran: Classification and Proposition of All Possible Features
- Conference: A pre-conference workshop in LREC 2012 Turkey which is about ”LRE-Rel: Language Resource and Evaluation for Religious Texts”
- Collaborators: A~CH, Taha Zerrouki, Pr. Amar Balla
Graphics & Design¶
- Icons,Logos: Abdellah Chelli, Muslih Al-Aqaad, Ahmed Ramadan, Moussa Drihem, Salaheddine Chelli
- Wallpapers: Aji Fatwa, Abd Madjid Kemari, Walid Boumaza
- Joomla Template: Muslih Al-aqaad
Packaging¶
- Windows NSIS installer: A~CH
- Ubuntu/Sabily DEB package: Ahmed Almahmoudy
- Fedora/OpenSuse/Ojuba RPM package: Muhammad Shaban
- Arch-linux package: Walid Ziouche, Sohaib Afifi
Resource Enriching¶
- Word index: Taha Zerrouki, A~CH, Asmaa Mhimeh, Rahma Maaref
- Aya index: {Tanzil Project}, Taha Zerrouki (Subjects), Muhi-uddin (Indian mushaf pages)
- Translations: {Tanzil Project},
Documentation¶
- Wiki: A~CH, Abdellah Chelli
Writing¶
- News : Mohamed M Sayed, Yasser Ghemit, Kacem Boukraa, Asmaa Mhimeh,
- Blog posts: Muslih Al-aqaad, Ahmed Jumal, Aji Fatwa
Community Management¶
- Yasmine Hoadjli
- Zineb Laouici
- Meriem Bounif
Translation¶
To help in translation, contact us in the mailing list <alfanous[at]googlegroups[dotcom]>
- Desktop application
- Arabic: Abdelmonam Kouka, Assem Chelli, LionArt (ghazi.nocturne), Karim Oulad Chalha, Zarrabi
- Indonesian: Amy Sidra, Arif Rahman Hakim, Muslih Al aqaad
- Malay: Muhammad Fariz
- Spanish: Ricardo Hermosilla
- French: Mohamed Nadjib Mami, Mahmoud Halit
- Albanian: ‘lavhal’
- Main Web Interface
- Arabic: A~CH, Yasmine Houadjli, Merwan Ali
- French: Zineb Pub, Yasmine Houadjli, Abdelkarim Aries, Nassim rehali, Nasreddine Cheniki
- Indonesian: Ahmed Jumal , Amy Sidra, Mahyuddin Susanto
- Japanese: Abdelkarim Aries
- Spanish: Khireddine Chekraoui
- Portuguese: Jonathan Da Fonseca
- German: Dennis Baudys
- Malay: ‘abuyop’
- Kurdish:
- Malayalam: ‘STyM Alfazz’ <https://launchpad.net/~alfasst>
- Old Mobile Web interface
- Bosnian: Armin Kazi
- Brazilian Portuguese: Aieon.corp(LP)
- French: Karim Oulad Chalha, ‘yass-pard’
- Indonesian: Mahyuddin Susanto,
- Italian: ‘Guybrush88’
- Japanese: Abdelkarim Aries
- Malay: ‘abuyop’
Test & Support¶
- Test: Walid Ziouche, Zakaria Smahi, Muslih Alaqaad,
- Bugs: Oussama Chammam, Ahmed Salem, xsoh, Yacer~, Jounathan~, BenSali~ , Many persons from the community, thanks to all.
- Vulns: Jalil~
Acknowledgment¶
See THANKS.rst
Packages¶
alfanous Package¶
alfanous
Package¶
Constants
Module¶
Data
Module¶
Exceptions
Module¶
Indexing
Module¶
Misc
Module¶
Outputs
Module¶
QueryProcessing
Module¶
ResultsProcessing
Module¶
Romanization
Module¶
Searching
Module¶
Suggestions
Module¶
TextProcessing
Module¶
Threading
Module¶
console
Module¶
ez_setup
Module¶
main
Module¶
setup
Module¶
Subpackages¶
Support Package¶
Support
Package¶
Subpackages¶
PyArabic
Package¶Araby_Statistics
Module¶araby
Module¶araby_constants
Module¶araby_normalizers
Module¶araby_predicates
Module¶araby_strip_functions
Module¶whoosh
Package¶analysis
Module¶classify
Module¶fields
Module¶formats
Module¶highlight
Module¶index
Module¶postings
Module¶query
Module¶reading
Module¶scoring
Module¶searching
Module¶spelling
Module¶store
Module¶system
Module¶util
Module¶writing
Module¶