Moogle Code Search Help
http://www.ibrix.info/search/
Thibaud Lopez Schneider
July 30, 2009
1) Overview
Moogle Code Search is a search engine for M3 7.1 code created independently by Thibaud Lopez Schneider as an experiment aiming to provide better search to M3 developers.
M3 is an application from Lawson Software.
Moogle Code Search indexes and provides full-text search on the M3 API Repository (which is publicly available),
as well as on the Movex MetaData Publisher (MDP) (which is restricted to Lawson Software employees only).
My idea is that the easier it is for developers to find and create code for M3, the more code around M3 will eventually be produced. It is a win-win scenario for both M3 developers and Lawson Software.
See the Screenshots here below for an illustration.
2) Screenshots
Here are some screenshots of Moogle Code Search in action:
3) Examples
Here are some examples to search for M3 API:
Here are some examples to search the M3 database metadata:
4) How it works
Moogle Code Search is a client-side search engine, i.e. the collecting, indexing and search is performed in your browser, not on the server.
It uses Google Gears, PubTools Search, and custom code.
Google Gears is a plug-in for browsers that adds HTML5 capabilities, a SQLite database, a full-text search module, multi-threading for JavaScript and other features to the browser.
PubTools Search is an open-source project using Dojo that provides the collecting, indexing, and search.
I then added some custom code to PubTools Search to tailor the search engine to the needs of Moogle Code Search.
Moogle Code Search has been tested on Microsoft Internet Explorer 7 and Firefox 2.
5) Installation
To install Moogle Code Search follow these steps:
- Install Google Gears in your browser.
- Download the indexes as a ZIP file and unzip the content in the respective folder of your browser:
For Internet Explorer: C:\Documents and Settings\\Local Settings\Application Data\Google\Google Gears for Internet Explorer\www.thibaudlopez.net\http_80\
For Firefox: C:\Documents and Settings\\Local Settings\Application Data\Mozilla\Firefox\Profiles\\Google Gears for Firefox\www.thibaudlopez.net\http_80\
- Go to Moogle Code Search.
- You will be prompted by Google Gears to trust the site www.thibaudlopez.net. The site will not collect any data from your computer and will not store any data other than for the purpose of the indexing mentioned above.
- Start using it. Refer to the Examples chapter above for some ideas, or refer to the Usage chapter here below for detailed instructions.
Optional. You can add Moogle Code Search as a Search Provider to Internet Explorer. See a screenshot of the result here. For that, follow these instructions:
- Go to Add Search Providers to Internet Explorer.
- Type this URL: http://www.ibrix.info/search/?q=TEST .
- Type this name: Moogle Code Search.
- Click Install.
- You can use the shortcut key CTRL+E in the browser to enter the search field automatically.
6) Usage
There are two tabs in Moogle Code Search:
- The API tab searches thru the M3 API Repository index (3834 documents).
- The MDP tab searches thru the Movex MetaData Repository index (90281 documents). You must be a Lawson Software employee to be able to access MDP.
This is how to use Moogle Code Search:
- Go to Moogle Code Search.
- To use the MDP tab, you must first authenticate the browser to MDP. For that, login to MDP (you must be a Lawson Software employee to be able to access MDP), and only then go to the MDP tab.
- Once in the search form, search for complete words, for example: customer, and press the ENTER key, or click the Search button. You can also search for field names, for example: PHNO. You can also combine several words and fields, for example: customer number PHNO CUA1
- The search is case insensitive, i.e. uppercase and lowercase will return the same result, for example: cUsToMeR.
- You have to search for full words, i.e. no partial words, for example phone instead of telephone will not return any results.
- You can search for partial word with the character * at the end of the word (not at the beginning), for example Get* or Lst* to only return the Get and Lst transactions respectively.
- Refer to the Examples chapter above for some ideas.
7) Feature list
This is the list of features already implemented:
- Search the M3 API Repository for programs, transactions, input fields, output fields, and descriptions.
- Search the Movex MetaData Publisher (MDP) for tables, columns, and descriptions.
- Google-like user interface: one input field, one button.
- Search by identifier or by description
- Search Provider to Internet Explorer
- Case insensitive search
- Search for postfix with asterisk (for example OKCU* will return OKCUNO and OKCUNM)
8) Wish list
This is a theoretical wish list that will most certainly never be implemented:
- Use a search engine that is server-side (no plug-in), that provides incremental indexing, and that has recovery on error while indexing
- Merge the API and MDP into a unified search.
- Refine the search using advanced filters, for example "input:CUNO output:PHNO" or "type:API".
- Search Lawson Web Services [DONE], automatically [NOT DONE].
- Search Movex Information Engine models (MIE) [DONE], automatically [NOT DONE].
- Search the M3 SMS Repository.
- Search M3 Java source code.
- Search Landmark source code.
- Search S3 source code.
- Add Moogle Code Search by default at every customer implementation, for example in LifeCycle Manager.
- Add URL-based search to Firefox (button.click() not supported in FF)
- Add Moogle Code Search as Search Provider for Firefox (like for IE)
- Highlight the searched words in the search results
- Show the relevance of the results with a percentage value (like Google Search)
- Add pagination to the results
- Add secondary links to the results to point to the parent program
- Search for prefix without asterisks (for example a search for CUNO would return OKCUNO and ZPCUNO)
Disclaimer
Because Moogle Code Search uses a client-side search engine (Google Gears and PubTools Search) it will most certainly stay in the BETA status.
It is provided AS IS, without any support, or guarantee.
M3 is a trademark of Lawson Software. Moogle Code Search is not affiliated to Lawson Software, and the views expressed in Moogle Code Search do not necessarily represent those of Lawson Software.
Moogle Code Search is not related to Google.
The Moogle logo was created by respecting the Guidelines for Third Party Use of Google Brand Features.
References
- Add Search Providers to Internet Explorer, http://www.microsoft.com/windows/ie/searchguide
- Dojo Toolkit, Dojo
- Google Gears, http://gears.google.com/
- Guidelines for Third Party Use of Google Brand Features, http://www.google.com/permissions/guidelines.html
- Lawson Software, http://www.lawson.com/
- M3 API Repository, http://www.lawson.com/Reposit13/reposit.html
- Moogle Code Search, http://www.ibrix.info/search/
- Movex MetaData Publisher (MDP), http://mdp.intentia.com/
- PubTools Search, http://code.google.com/p/gears-pubtools/
- SQLite, http://www.sqlite.org/
- Thibaud Lopez Schneider, http://www.thibaudlopez.net/
back