It looks only a handful of people actually looked at the link provided. Indeed, it is hard to let the engine "come up" with a series of queries that range from the most restrictive to the less restrictive and still provides the best relevance. The problem is even worse if what is relevant for one use case is irrelevant for others, specially if you are dealing with "mixed queries" that combine text with structured fields (i.e. range queries and sorting in the Lucene case).
Let's suppose that you are dealing with the e-commerce/catalog search case where you would like to show hits that match the query submitted by the end user first as exact phrase, then with the terms near each other , then AND'd then fuzzy or stemming and finally OR'd on certain fields (i.e. title, description ,etc) and additionally you want to always try to match hits from those that were within the price range specified and if not enough relax second best (i.e. just above the price range) until you get a max of 500 hits. All this defines exactly in what order you want to show/rank results! How many queries do you have to build and send to Solr/Lucene to achieve this? Progressive relaxation, at least as Oracle has defined it, is a flexible, developer defined series of queries that are efficiently executed in progression and in one trip to the engine, until minimum of hits required is satisfied. It is not a self adapting precision scheme nor it tries to guess what is the best match. This approach is however very powerful (as powerful as the queries that are submitted) and leaves the developer with the choice of controlling what queries to execute and in which order. I don't think DisMax does this. -- Joaquin 2007/4/10, Walter Underwood <[EMAIL PROTECTED]>:
From the name, I thought this was an adaptive precision scheme, where the engine automatically tries broader matching if there are no matches or just a few. We talked about doing that with Ultraseek, but it is pretty tricky. Deciding when to adjust it is harder than making it variable. Instead, this is an old idea that search amateurs seem to like. Show all exact matches, then near matches, etc. This is the kind of thing people suggest when they don't understand that a ranking algorithm combines that evidence in a much more powerful way. I talked customers out of this once or twice each year at Ultraseek. This approach fails for: * common words * misspellings Since both of those happen a lot, this idea fails for a lot of queries. I presume that Oracle implemented this to shut up some big customer, since it isn't a useful feature unless it closes a sale. DisMax gives you something somewhat similar to this, by selecting the best matching field. That is much more powerful and gives much better results. wunder On 4/9/07 12:46 AM, "J. Delgado" <[EMAIL PROTECTED]> wrote: > Has anyone within the Lucene or Solr community attempted to code a > progressive query relaxation technique similar to the one described > here for Oracle Text? > http://www.oracle.com/technology/products/text/htdocs/prog_relax.html > > Thanks, > > -- J.D.
