On 27 Oct 2005, at 19:13, Andy Lee wrote:

I have a situation where I want to search for individual words in a phrase as well as the phrase itself. For example, if the user enters ["classical music"] (with quotes) I want to find documents that contain "classical music" (the phrase) *and* the individual words "classical" and "music".

So in this case a matching document must have both terms? Or could it just have one or the other? If it must have both, you could try a PhraseQuery with a slop of Integer.MAX_VALUE. PhraseQuery scores closer matches higher.

Of course, I could just search for the individual words and the phrase would get found as a consequence. But I want documents containing the phrase to appear first in the search results, since the phrase is the user's primary interest.

I've constructed the following query, using boost values...

[+(content:"classical music"^5.0 content:classical^0.1 content:music^0.1)]

...but the boost values don't seem to affect the order of the search results.

Am I misunderstanding the purpose or proper usage of boosts, and if so, can someone explain (at least roughly) how to achieve the desired result?

But as Chris suggested - check the IndexSearcher.explain() for some documents you feel should be ranked higher and work from there. You're on the right track, but some tuning appears necessary.

    Erik


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to