It is not clear how much flexibility you expect in those queries. Can
the second word never be full name? Can there be more than 2 words?
How do you know the length of the prefix? When you say prefix, do you
mean 'jo' is expected to match 'joseph'?

So, just generically, I would say why not index everything into one
field with analyzer chain keeping both original and prefixed
(EdgeNGrams) forms of the word? Maybe combined with some sort of
post-filter if that over-matches.

Regards,
   Alex.
On Thu, 22 Nov 2018 at 19:37, NewMelchizedec sundararaj
<[email protected]> wrote:
>
> Hi Fellow Searchers,
>
> I am indexing some content (say name) in to two fields with different
> analyzer chains.  One that would do edge prefix and the other regular
> tokenization.
> Let me call them name_prefix and name_term
>
> When an incoming partial query comes up, like "steve jo", I want the
> first word to be searched in regular index while the jo to go to
> prefix index.
>
> something like
> name_term:steve AND name_prefix:jo
>
> works.
>
> But I would like to use them in a phrase. i.e. expect them to be next
> to each other.  Following are the things attempted. with out success.
>
> 1. regular phrase: "name_term:steve name_prefix:jo"  - does not expect
> field names.
> 2. complex phrase query: {!complexphrase inOrder=true}"name_term:steve
> name_prefix:jo" - does not allow different field names in the same
> phrase.
> 3. played around with {!surround}3w(name_term:steve,name_prefix:jo) -
> does not support subquery (field names).
>
> Any other way this can be accomplished?
>
> Thanks
> Melchi

Reply via email to