I am going to post this a little early tonight… It has been a very productive week. Although I have done some minor and major improvements I’ll just outline the main points below:
1. New Search Index
I have created a new table for a search index so the data that needs searched can be found much more easily. The index is kept up to date with posts, pages, and comments and contains basic meta data like categories so the flags can easily be searched.
Sphinx and other tools including the database engine can also just query one table instead of 2 or 3 to find all the content types they want and results can properly be ordered. In addition to the table are a set of functions in the search api that maintain the index.
2. Search Flags
All the search flags I wanted to implement work. You can choose a start and end date for results, author, category, title, content, and type (comment, post, page). You can also order results by date and alphabetical currently, working on relevancy for the MySQL search.
3. Returning Results + Searchbox
I now have results being returned to me on the search page as well as a search box for searching. This is done with the search code like previously mentioned.
4. Various Filters/Actions
Since the whole point is for extendability I have added some filters already such as on the loading of the search plugin, when the search index is changed and when the HTML for the form and results are being created.
The goals for the next TWO weeks include:
- Fixing up the results page up visually and add in tools for filtering and ordering.
- Proper Pagination for results
- Cleaning up Code
- An “Advanced Search” page
I am volunteering at a camp for the next week (thursday-thursday) but will try to find time to get a few of these done. However the update for next week may be shorter.
I feel like I am making good progress and can easily implement other search engines (sphinx) soon. 🙂