Indexing a database
I need to index an
sqlite database. What do I do to do this?
I think I need to create a protocol handler which will represent a store - that store being my database file, and an IFilter to return data from the database.
I understand there are two types of protocol handler -
Asynchronous Pluggable Protocolsand
A Registered Application. What type of protocol handler does WDS use?
If I am understanding right, this protocol handler is known as a store in WDS, how is the store\handler registered with WDS? Will the protocol handler will be specific to my database - ie it will represent my db as a store, not all sqlite.
I was thinking about bastardizing
CodeProject - A Simple protocol for my protocol handler. However this is C# CLR - is there likely to be a problem with unmanaged code running managed code?
When do things happen in WDS? Is this right?
At some stage the WDS gatherer will start to build the index.
WDS loads its registered protocol handlers.
My protocol handler will access the database and return a series of key\value pairs to the indexer.
Where does the IFilter fit in?
Where to start?Do I need to create a new store?Using Database and Template for IFiltersIntroduction to Protocol HandlersHow to create a custom protocol handler and content source for the protocol handler in SharePoint Portal Server 2003(what do wds and sharepoint have in common?)
Basically APPs have nothing to do with WDS PHs, despite that both rely on URLs for adressing items.
Sample address: sqlite://Database=MyDB&Table=Doc&Entry=544554
APPs are used to open store items from the windows shell. You develop APP and WDS PH independently.
But it is good to have an APP too to open DB items from WDS query result.
A WDS PH is only used to crawl stores of items to be indexed.
Yes an IFilter is a COM object that feeds meta data to WDS during crawling.
I would start here: http://addins.msn.com/devguide.aspx
There are currently no samples for WDS PHs available. It is very complex!
I stopped development until the WDS 3.0 SDK is available.
Good luck!
Martin
Martin Koppmann wrote: |
| Basically APPs have nothing to do with WDS PHs, despite that both rely on URLs for addressing items. Sample address: sqlite://Database=MyDB&Table=Doc&Entry=544554 |
|
Is it not preferable for PH's to be Hierarchal and return it's 'subdirectories'?
(http://addins.msn.com/devguide.aspx)
I was thinking about this - wouldn't a better address be?
sqlite://<path>/<file>/<doc>/<entry>(the sqlite database is one file located at <path>/<file>)
Then:
sqlite://<path> | returns 404 |
sqlite://<path>/<file> | Basic database info (if the path is a valid db file) 'Subdirectories' as a list of tables |
sqlite://<path>/<file>/<doc> | Stuff relating to the <doc> table 'Subdirectories' as a list of entries in the <doc> table |
sqlite://<path>/<file>/<doc>/<entry> | Data for the <entry> entry no 'Subdirectories' |