use slop with phrase_prefix
On Mon, Apr 27, 2015 at 5:58 PM, Kathy Cashel <kathleencas...@gmail.com> wrote: > My client wants a search that returns both prefix and exact matches per > token. Most (but not all) of the text being searched is human names. The > idea is that "jane smith" and "smith, j" and "j smit" will all return the > same document, so I'm using tokens. > > The trick is that it needs to be an "and" search: all tokens in the search > string must be present in the results. And the prefix query does not seem > to offer this option. Edgengram would be a great answer, but the client > wants results returned alphabetically - using no relevance at all - and the > long tail on ngram searches makes the alpha sort unfeasible. > > So for now I'm using a simple keyword tokenizer (plus some custom > analyzers) to index, and then splitting the search string on spaces to > build queries like the below. It seems very awkward / cumbersome / brittle. > > All suggestions appreciated. > > { > "query" : { > "bool" : { > "must" : [{ > "bool" : { > "should" : [{ > "match" : { > "text" : "j" > } > }, { > "prefix" : { > "text" : "j" > } > } > ] > } > }, { > "bool" : { > "should" : [{ > "match" : { > "text" : "smith" > } > }, { > "prefix" : { > "text" : "smith" > } > } > ] > } > } > ] > } > } > } > > > -- > You received this message because you are subscribed to the Google Groups > "elasticsearch" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to elasticsearch+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elasticsearch/bf12f1dc-f8d5-4e05-92fa-ce5f36c07d1c%40googlegroups.com > <https://groups.google.com/d/msgid/elasticsearch/bf12f1dc-f8d5-4e05-92fa-ce5f36c07d1c%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAHzCMppKN8LnYxrGUkdHok9YT4LyhmY0D%3DugRGpMbwKux%3Dyn2Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.