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.
For more options, visit https://groups.google.com/d/optout.