Hi Alex, Thanks for your reply. I am keeping the original with the edge, but not sure how to mark them as original. I would like to avoid a prefix match for the full words. You mentioned post-filter - can you shed some light on this?. If only I can remove these over-matches, that would be great.
My requirement is even more involved than my question. say I have a set of analyser chains 1. token 2. edgeNgram 3. phonetic etc I wanted to match every token against say these analyzed fields with different weight, but never double counting their match for the same token. So I am wrapping them in a {!maxscore}. In addition to this, I would like to maintain the proximity of the tokens to one another (at least maintaining the proximity less than the positionIncrementGap to remain with in a single value of a multi-valued field). Regards Melchi On Fri, 23 Nov 2018 at 17:54, Alexandre Rafalovitch <arafa...@gmail.com> wrote: > 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 > <mel...@gmail.com> 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 > --