lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ahmet Arslan <>
Subject Re: Cannot get like exact searching to work
Date Thu, 11 Feb 2010 13:52:59 GMT
> I might be able to try this out though in general the
> project has a
> policy about only using released code (no trunk/unstable).
> It looks like the kind of searching I want to do is not
> really
> supported in SOLR by default though. Is that correct?

* or ? operators inside phrases are not supported in Solr by default. In Lucene contrib package
there is a ComplexPhraseQueryParser that allows them.

> I thought that was what my exact definition was doing
> except I also
> want the exact field to be lowercased and trimmed (which I
> don't want
> for all strings). Can you explain what is wrong with the
> current
> definition so I can fix it?

in your attachment the definition is:

<fieldType name="exact" class="solr.TextField" compressed="false" indexed="true" stored="true"

I have never seen a field type definition without charfilter/tokenizer/tokenfiler chain. Usually
string type is used for exact match.

> What I really want is the equivalent of a match like this
> along with
> the normal tokenized matching (where the query has been
> lowercased and
> trimmed as well):
> select * from blah where lowercase(column) like '%query%';
> I think this is called a phrase match or something like
> that. 

Can your query consist of more than one words?

> However, wildcards cannot be used at the beginning of query so I
> guess I can live with only being able to startsWith type matching until
> that is fixed. 

With solr.ReversedWildcardFilterFactory it is possible. But it is in 1.4.0.

> For now I have tried to do that using this:
> query = (summary:"my item" || summaryExact:"my item*"^3)
> but I would do this if I could:
> query = (summary:"my item" || summaryExact:"*my item*"^3)

If you use string type for summaryExact you can run this query summaryExact:my\ item* It will
bring you all documents begins with my item.
> The idea is that a "phrase" match would be boosted over the
> normal
> token matches and would show up first in the listing. Let
> me know if
> more examples would help. I am happy to provide them.

More examples will be great. Because boosting phrase match on a tokenized field can be achieved
by something like "my item"^5 my item
I didn't understand need of * operator. 
Also this query will retrieve documents below:

something my item something
my something item something

We can say that it already behaves %like% query.


View raw message