John Powers wrote:

Hello,
Lucene only lets you use a wildcard after a term, not before, correct?
What work arounds are there for that?

If I have an item 108585-123
And another 332323-123
How can I look for all the -123 family of items?

Classic indexing problem.  Here are a couple simple ideas.

1. If the dash in these items means that the two sets of numbers are, in fact, different attributes, AND you only want to prefix entire attributes, then separate them into their own fields in Lucene. That is, instead of a FOOBAR field with entries like 108585-123, have a FOO field with entries like 108585 and 332323, and a BAR field with entries like 123. To look for all items in the 123 family, simply search only on the BAR field.

2. If you want arbitrary postfixing for ITEM (in addition to the arbitrary prefixing Lucene already provides), encode ITEM in the index in forward and reverse directions. In other words, ITEM has entries like 108585-123 and 332323-123, and REVITEM has entries like 321-585801 and 321-332323. To look for all items in the 123 family, search for "321*" on REVITEM. To look for all items in a family ending in 3, the equivalent of "*3" in ITEM, search for "3*" in REVITEM.

Good luck!

--MDC

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

Reply via email to