Hi, The issue is that the `region` field in `group` is indexed with positional data, while the `region` field in `user` is indexed without. This is something that Elasticsearch cannot deal with. You should try to give the `region` field different names in `group` and `user`.
On Fri, Jul 25, 2014 at 9:34 AM, xu piao <[email protected]> wrote: > > http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/mapping.html#_avoiding_type_gotchas > > at above guidence it say i can use _type + field name to avoid analyzer > conflicts. but i have try many times all is no use. > > i have a index with two type is group and user which all have 'region' > field conflict . > > group : > > - region: { > - type: string > - store: true > - analyzer: ik > } > > > user: > > - region: { > - type: "long" > } > > as guidence say : > > We can avoid this problem either by naming the fields differently — eg > title_en and title_es — or by explicitly including the type name in the > field name and querying each field separately: > > GET /_search > { > "query": { > "multi_match": { > <http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/mapping.html#CO30-1> > "query": "The quick brown fox", > "fields": [ "blog_en.title", "blog_es.title" ] > } > } > } > > I do query like this > { > "bool" : { > "must" : { > "query_string" : { > "query" : "\"北京西路\"", > "fields" : [ "group.name^20", "group.tags^5", "group.intra^1", > "group.region^2", "group.address^2" ] > } > }, > "minimum_should_match" : "1" > } > } > > but no use . it still throw exception . > > why ??? > > exception : > org.elasticsearch.search.query.QueryPhaseExecutionException: [matrix][4]: > query[filtered((name:"闵行区 吴 宝 路"^20.0 | tags:"闵行区 吴 宝 路"^5.0 | intra:"闵行区 吴 > 宝 路" | region:"闵行区 吴 宝 路"^2.0 | address:"闵行区 吴 宝 > 路"^2.0))->cache(_type:group)],from[0],size[20]: Query Failed [Failed to > execute main query] > at > org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:127) > at > org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:257) > at > org.elasticsearch.search.action.SearchServiceTransportAction.sendExecuteQuery(SearchServiceTransportAction.java:202) > at > org.elasticsearch.action.search.type.TransportSearchQueryThenFetchAction$AsyncAction.sendExecuteFirstPhase(TransportSearchQueryThenFetchAction.java:80) > at > org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction.performFirstPhase(TransportSearchTypeAction.java:216) > at > org.elasticsearch.action.search.type.TransportSearchTypeAction$BaseAsyncAction$4.run(TransportSearchTypeAction.java:292) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) > at java.lang.Thread.run(Thread.java:722) > Caused by: java.lang.IllegalStateException: field "region" was indexed > without position data; cannot run PhraseQuery (term=闵行区) > at > org.apache.lucene.search.PhraseQuery$PhraseWeight.scorer(PhraseQuery.java:278) > at > org.apache.lucene.search.DisjunctionMaxQuery$DisjunctionMaxWeight.scorer(DisjunctionMaxQuery.java:161) > at > org.apache.lucene.search.FilteredQuery$RandomAccessFilterStrategy.filteredScorer(FilteredQuery.java:531) > at > org.apache.lucene.search.FilteredQuery$1.scorer(FilteredQuery.java:136) > at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:618) > at > org.elasticsearch.search.internal.ContextIndexSearcher.search(ContextIndexSearcher.java:173) > at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:491) > at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:448) > at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:281) > at > org.apache.lucene.search.IndexSearcher.search(IndexSearcher.java:269) > at > org.elasticsearch.search.query.QueryPhase.execute(QueryPhase.java:123) > ... 8 more > > -- > 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/elasticsearch/5d8e0efc-da58-4a5f-a694-3357cf5d10d8%40googlegroups.com > <https://groups.google.com/d/msgid/elasticsearch/5d8e0efc-da58-4a5f-a694-3357cf5d10d8%40googlegroups.com?utm_medium=email&utm_source=footer> > . > For more options, visit https://groups.google.com/d/optout. > -- Adrien Grand -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/CAL6Z4j7xpxcKpFv%2BzZpwY7EDyHwq-6aitAvght9BP2rCk4-86Q%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
