therin
therin

Reputation: 1468

Solr query is returning partial matches for one field, and not a different field

I have a search autocomplete on my site, and I'm using Solr to find matching documents. I am trying to get partial matches on page titles, so for example Java* would match Java, Javascript, etc. As of right now, the autocomplete is set up to give me partial matches on all of the text in the page, which gives some weird results, so I've decided to switch over to using the page title. However, when I try to switch the search term from text for the page text to title, the query suddenly does not pick up partial matches any more. Here is an example of my original query:

q=text:java^2+text:"java"
  &hl=true&hl.snippets=1&hl.fragsize=25&hl.fl=title&start=0&rows=3

Unfortunately, the guy who set this up for me does not work with me any more, so I have little idea what's going on 'under the hood'. I'm using Spring/J2EE for my backend, if that makes any difference.

Upvotes: 1

Views: 842

Answers (2)

Viswa
Viswa

Reputation: 1

Depends on how the field title was analyzed, look at schema.xml to see what type the field is and how its analyzed to create term. Easy way to do that would be to go to solr admin http://localhost:8983/solr/admin/analysis.jsp, choose the same name option, type in the field name (am guessing 'title') put some sample text and query to see what terms are created and matched.

Upvotes: 0

fyr
fyr

Reputation: 20859

You need to make sure that the field is no string based field. You can lookup this if you take a look at your schema.xml. If you search with Java* inside a string field it will match only titles which start with Java*.

Another thing is that you need to make sure that you are aware that Wildcard Queries are case sensitive (see this).

Upvotes: 2

Related Questions