On Thu, 12 Jun 2014 03:32:51 -0700, Sikandar <[email protected]> wrote:

> We are using search:search and also enabled stem search in DB though  
> search results differ for words ending in 's.
> Example when searching for teachers the results returned are for teacher  
> and teachers, but when searching for teacher's the results are only  
> returned for teachers's.

This is as expected: English tokenization breaks this into three tokens:
"teacher" + "'" (punctuation) + "s" and stemming operates one word
at a time. In addition, when you include punctuation within a query,
by default is runs as a punctuation-sensitive search. That will make
a difference for value queries (potentally) and for searches run
filtered. (We don't index punctuation, so it won't change unfiltered
word queries.)  So a word query for "teacher's" will run as a phrase
search for "teacher" + "s".

> Please suggest what should we do to fix this whether we should use  
> dictionary OR any other configuration that I am missing.

Your best bet may be to preprocess query strings to toss out "'s"

If you are searching within narrowly constrained parts of your documents,
you could use a field with custom tokenization that makes ' a word token
within that field. It will apply to all uses of apostrophe in that field,
so if they are used in other ways, it won't work. There is an expense with
doing that at ingestion time (field indexing takes a separate pass) so
I'd still recommend preprocessing the query string.

//Mary


_______________________________________________
General mailing list
[email protected]
http://developer.marklogic.com/mailman/listinfo/general

Reply via email to