Copied to clipboard

Flag this post as spam?

This post will be reported to the moderators as potential spam to be looked at


  • overflew 87 posts 110 karma points
    Dec 07, 2010 @ 03:03
    overflew
    0

    Constructing an alternative search - Feedback...

    Hi,

    I've been asked to implement a search in Umbraco, which doesn't seem well suited to XlstSearch (we have ~20k+ nodes), or Examine (lots of things to query through parent Ids, relation types, fields).

    I've got a version working that is constructing LINQ queries, and successfully making its way around the documenttypes, versions, etc - though it's a little sluggish.

    I'm contemplating making a search index in a fresh table, and binding to a few events (Publish, Unpublish, Delete) to maintain the index - could I please get your feedback on this?

    There would be about 4 indexes maintained.

    The other part I'm trying to decide on is if I should tie it to the cmsTags + umbracoRelation table - as it requires this for the query. I plan to use the BeforeDelete event to make sure I clear my index entries out of the way, to avoid any foreign key constraint errors when performing a delete in Umbraco.

    Any feedback welcome - Thanks.

  • Ismail Mayat 4511 posts 10091 karma points MVP 2x admin c-trib
    Dec 07, 2010 @ 11:23
    Ismail Mayat
    1

    overflew,

    i would stick with examine and if your worried about querying over too many properties you can use the gatheringnode event and concatenate all the fields into one field and call it say contents and query over that.  Examine based on lucene is awesome and very very powerful and with all due respect your making extra work for yourself when there is already an excellent search solution in place.   Take a look at my blog post regarding webinator and also there is link to microsoft search server which is another search option. 

    regards

    Ismail

  • Aaron Powell 1708 posts 3046 karma points c-trib
    Dec 07, 2010 @ 12:09
    Aaron Powell
    0

    Having worked on a search API (examine) I can tell you that creating a search API is one of the hardest things in software to try and write, and we didn't really write a search API, just wrapped one.

    There's a lot of things people don't think about with search, such as:
    - dealing with nuances in a language
    - finding the 'best match', ie: in the string 'The quick brown fox' is the search 'quick brown' higher ranked than 'quick fox'?
    - What do you do about 'the', 'and' 'a', etc
    - How do you deal with wildcards
    - Does 'fox brown' return a match in 'the quick brown fox'

    And many more.,,

    Not trying to scare you off, just be aware of what you're getting into up front :)

Please Sign in or register to post replies

Write your reply to:

Draft