Chris Hostetter wrote:
> typically, when build queries up from form data, each piece
> of data falls into one of 2 categories:
>
> 1) data which doesn't need analyzed because the field it's going to
> query on wasn't tokenized (ie: a date field, or a
> numeric field, or a
> boolean field)
But couldn't even these simple field types also need analysing?
E.g, I could have a very simple number field - so I need to pad it at
both index and search time to a certain number of characters. Isn't a
custom TokenFilter added to an analyser a reasonable way to handle such
fields (keeping the logic of how to transform input into Term all in one
place).
> 2) data whcih is typed by the user in a text box, and not only needs
> analyzed, but may also need some parsing (ie: to support "quoted
> phrases" or +mandatory and -prohibited terms)
>
> in the first case, build your query clauses progromatically.
>
> in the second case make a QueryParser on the fly with the
> defaultField set to whatever makes sense and let it handle
> parsing the users text (and applying hte correct analyzer
> using PerFieldAnalyzer. if there are special characters you
> want it to ignore, then escape them first.
Yeah, one of my fields is "keywords" - in to which the user can type a
list of terms - all of which need to be analysed.
It seems all I logically want to do is extract the terms from the input
- running each through an analyser - and then combining them in to a
boolean query.
However, a typical search will be "C++" - so Im also going to have to
escape the content - because Im using a QueryParser.
I certainly agree that I can accomplish what I want by escaping, running
thru the query parser and combining using boolean queries.
I think the query factory patch (LUCENE-344) is pretty close to what I
was trying to get at.
The ability to say the following would be really cool:
Query keywordsQuery = queryFactory.getFieldQuery("keywords",
someAnalyser, keyworkdsText);
The factory lets us get to the guts of running the content through the
analyser, and extracting a query in various ways - without having to do
extra work (escaping, overriding unsupported methods) so that we can
achieve the same goal with the Query Parser. Seems like a nice
Separation of Concerns.
The QueryParser then adds the -- parsing -- on top of this, but can
delegate for query delegation.
> i discussed this a little more recently...
>
> http://www.nabble.com/RE%3A+Building+queries-t1635907.html#a4436416
>
Indeed. I apologise - I should have stuck with that original thread.
Sorry for the carelessness.
>
> -Hoss
>
Dave
This e-mail and any attachment is for authorised use by the intended
recipient(s) only. It may contain proprietary material, confidential
information and/or be subject to legal privilege. It should not be copied,
disclosed to, retained or used by, any other party. If you are not an intended
recipient then please promptly delete this e-mail and any attachment and all
copies and inform the sender. Thank you.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]