Dovetail Seeker update part deux
Yesterday I added a feature that will be in the next release of Dovetail Seeker.
Executive Summary: Coming soon, support for indexing against Clarify views.
Didn’t it support that already?
Well.. No. I was working on a feature for Mobile Agent that I wanted to use some cool search techniques to facilitate and found out a view would work better. When I tried to do just that the indexer exploded with nasty unfriendly errors. What is a developer to do but stop everything and add a feature.
Does this great power come with any great responsibilities?
Yes. Paths traversing relationships are not allowed when indexing views. What is a path? Well, paths are basically instructions telling the indexer how to find the piece of data you want in the index. Against tables paths can include relations which are not possible for views. This means you are limited to indexing only the fields present on the view.
In any case when indexing against a view you’ll likely have the ability create a new view or update an existing one. For example if you need to index that fancy description field off a related record just add a new view column for indexing.
<path>probdesc2workaround:description</path>, instead: <path>workaround_description</path>
Can I get an example?
Sure. Good idea. Here is an example document specification based on a custom Clarify view I created to help me index contacts.
<dovetailDocumentSpecification> <identification displayName="contact" table="fc_contact_view" idColumnName="contact_objid"/> <documentSelectionCriteria><![CDATA[last_modified > ${lastIndexUpdate}]]></documentSelectionCriteria> <title> <path>first_name</path> <path>last_name</path> </title> <summary> <path>first_name</path> <path>last_name</path> <path>phone</path> </summary> <contents> <path>first_name</path> <path>last_name</path> <path>phone</path> <path>site_name</path> </contents> <customField title="role"> <path>role_name</path> </customField> <customField title="phone"> <path>phone</path> </customField> <customField title="site"> <path>site_name</path> </customField> </dovetailDocumentSpecification>
Why is this handy?
You can create views that do your bidding without having to figure out a lot of path traversals. Though you’ll still have to figure out how to create the view. Taking it up a notch you can create SQL views allowing you to create indexes with almost any scenario.
Why did you write this post if FAQ format?
Not sure. Seemed like a good idea at the time. I sure hope it was as informative for our Dovetail Seeker customers out there.