Hi 

Why it no use when i explicitly type name to separate query field ?

or that meanning : only two type 'region' field all indexed can use this 
way to separate query field , not one of them is indexed can use?

sorry my english is poor . 

Maybe I did not express clearly what I mean。

在 2014年7月26日星期六UTC+8上午1时16分25秒,Adrien Grand写道:
>
> 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] <javascript:>> 
> 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] <javascript:>.
>> 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/c51a8004-4e20-45e4-a487-c1a9886a254d%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to