Cheers,
Out of interest, how did you go about it in the end?

jloken wrote:
> 
> Hi, 
> 
> I posed a similar question on 09 May 08. 
> 
> The response was as below. I did not go down this route however, as a
> wild carded 'exact' phrase is in a way contradictory. 
> Regards
> Jon
> 
> 
> 
> Hi,
> 
> Here's a searchable mailing list archive: 
> http://www.gossamer-threads.com/lists/lucene/java-user/
> 
> As regards the wildcard phrase queries, here's one way I think you could
> do it, but it's a bit of extra work. If you're using QueryParser, you'd
> have to override the "getFieldQuery" method to use span queries instead
> of phrase queries.
> 
> A phrase query can be implemented as a span query with a span or "slop"
> 
> factor of 1. So, once you have the PhraseQuery object, you would:
> 
> 1. Extract the terms
> 2. For each one, check if it contains a "*" or a "?"
> 3. If it does, create a WildcardQuery using that term, and re-write it
> using IndexReader.rewrite method. This expands the wildcard query into
> all it's matches.
> 4. Create an array of SpanTermQuery objects, (one SpanTermQuery for each
> term that matched you wildcard); then add that array to a SpanOrQuery.
> 5. Repeat 2 to 4 for each wildcard term in the phrase.
> 6. Finally (!), create a SpanNearQuery, adding all the original terms in
> order, but substituting your SpanOrQuerys for the wildcard terms. Use a
> slop of 1, and set the inOrder flag to true.
> 
> So, essentially, you'd end up with: (you'll have to excuse me if I
> haven't rendered the span queries correctly as strings here - but this
> should give the general idea...)
> 
> spanNear[boiler (spanOr[replacement replacing])]
> 
> So it will accept *either* "replacement" or "replacing" adjacent to
> "boiler", which is what you want.
> 
> As you can see, it's a bit of work - but if you add this functionality
> to the QueryParser, you'll can re-use it a lot!
> 
> Hope that helps!
> 
> -JB
> 
> 
> 
> 
>  
> 
> -----Original Message-----
> From: mick l [mailto:[EMAIL PROTECTED] 
> Sent: 24 June 2008 13:29
> To: java-user@lucene.apache.org
> Subject: Wildcard and Literal Searches combined
> 
> 
> Folks,
> My users require wildcard searches. Sometimes their search phrases
> contain spaces. I am having trouble trying to implement a wildcard
> search on strings containing spaces, so if the term includes spaces I
> force a literal search by adding double quotes to the search term.
> So the search string for 'Dublin' becomes search term (Dublin*) whereas
> search string 'Dublin City' becomes ("Dublin City")
> 
> 
> If I use (Dublin City*) I get all instances of Dublin OR City in the
> results which is not what I am looking for. 
> 
> Is there any way I can combine the wildcard search and the literal?
> 
> Heres my existing code. Its in c# with Lucene.Net
> 
> //if input has spaces we do a literal search if (sSearchQuery.IndexOf("
> ") < 0) { sSearchQuery = "(" + sSearchQuery + "*)"; } else {
> sSearchQuery = "(\"" + sSearchQuery + "\")"; } IndexSearcher searcher =
> new IndexSearcher(sIndexLocation); Hits oHitColl =
> searcher.Search(oParser.Parse(sSearchQuery));
> 
> Thanks folks
> --
> View this message in context:
> http://www.nabble.com/Wildcard-and-Literal-Searches-combined-tp18089950p
> 18089950.html
> Sent from the Lucene - Java Users mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> ______________________________________________        
> This email has been scanned by Netintelligence        
> http://www.netintelligence.com/email
> 
> 
> 
> BiP Solutions Limited is a company registered in Scotland with Company
> Number SC086146 and VAT number 383030966 and having its registered office
> at Park House, 300 Glasgow Road, Shawfield, Glasgow, G73 1SQ
> ****************************************************************************
> This e-mail (and any attachment) is intended only for the attention of the
> addressee(s). Its unauthorised use, disclosure, storage or copying is not
> permitted. If you are not the intended recipient, please destroyall copies
> and inform the sender by return e-mail.
> This e-mail (whether you are the sender or the recipient) may be
> monitored, recorded and retained by BiP Solutions Ltd.
> E-mail monitoring/ blocking software may be used, and e-mail content may
> be read at any time. You have a responsibility to ensure laws are not
> broken when composing or forwarding e-mails and their contents.
> ****************************************************************************
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Wildcard-and-Literal-Searches-combined-tp18089950p18090884.html
Sent from the Lucene - Java Users mailing list archive at Nabble.com.


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

Reply via email to