我想知道分析器(在elasticsearch中)應該只在主節點上實現,還是必須分別在所有節點上實現?彈性搜索中的停用詞分析器
找不到準確的答案。
請幫忙!
感謝
{
filter: {
spanish_stemmer: {
type: "stemmer",
language: "spanish"
},
spanish_stop: {
type: "stop",
stopwords: "_spanish_"
}
},
my_analyzer: {
spanish: {
filter: [
"lowercase",
"spanish_stop",
"spanish_stemmer"
],
tokenizer: "standard"
}
},
mappings: {
customparent: {
properties: {
name: {
type: "string",
analyzer: "my_analyzer"
},
title: {
type: "string",
analyzer: "my_analyzer"
},
fullImageAltDescription: {
type: "string",
analyzer: "my_analyzer"
}
}
}
}
}
添加日誌: -
我使用Elasticsearch(2.4.1v)彈簧數據傳輸客戶端來從elasticsearch數據卡住了與以下錯誤: -
org.elasticsearch.action.search.SearchPhaseExecutionException:所有碎片在org.elasticsearch.action.search.AbstractSearchAsyncAction.onFirstPhaseResult(AbstractSearchAsyncAction.java:206)〜失敗 [elasticsearch-2.4.0.jar:2.4.0] 在org.elasticsearch.action.search.AbstractSearchAsyncAction $ 1.onFailure(AbstractSearchAsyncAction.java:152)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.action.ActionListenerResponseHandler.handleException(ActionListenerResponseHandler.java:46 )〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.transport.TransportService $ DirectResponseChannel.processException(TransportService.java:872)〜[elasticsearch-2.4.0.jar:2.4.0] 在org.elasticsearch.transport.TransportService $ DirectResponseChannel.sendResponse(TransportService.java:850)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.transport.TransportService $ 4.onFailure(TransportService.java:387)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable .java:39)〜[elasticsearch-2.4.0.jar:2.4.0] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)〜[na:1.8.0_101] at java.util .concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)〜[na:1.8.0_101] at java.lang.Thread.run(Thread.java:748)〜[na:1.8.0_101] 引起:org.elasticsearch.index.query.MatchQueryParser.parse(MatchQueryParser.java:101)〜[elasticsearch-2.4.0.jar:org.elasticsearch.index.query.QueryParsingException:[match] analyzer [my_analyzer] not found 2.4.0] at org.elasticsearch.index.quer y.QueryParseContext.parseInnerQuery(QueryParseContext.java:250)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.index.query.IndexQueryParserService.innerParse(IndexQueryParserService.java:320)〜[elasticsearch- 2.4.0.jar:2.4.0] at org.elasticsearch。org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:223)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch。 index.query.IndexQueryParserService.parse(IndexQueryParserService.java:218)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.search.query.QueryParseElement.parse(QueryParseElement.java:33)〜[ elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch。org.elasticsearch.search.SearchService.parseSource(SearchService.java:856)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch。 search.SearchService.createContext(SearchService.java:667)〜 [elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.SearchService.createAndPutContext(SearchService.java:633)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch .search.SearchService.executeDfsPhase(SearchService.java:264)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.search.action。SearchServiceTransportAction $ SearchDfsTransportHandler.messageReceived(SearchServiceTransportAction.java:360)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.search.action.SearchServiceTransportAction $ SearchDfsTransportHandler.messageReceived(SearchServiceTransportAction.java:357)〜[ elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch。org.elasticsearch.transport.TransportRequestHandler.messageReceived(TransportRequestHandler.java:33)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch。 transport.RequestHandlerRegistry.processMessageReceived(RequestHandlerRegistry.java:77)〜[elasticsearch-2.4.0.jar:2.4.0] at org.elasticsearch.transport.TransportService $ 4.doRun(TransportService.java:376)〜[elasticsearch-2.4 .0.jar:2.4.0] at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37)〜[elasticsearch-2.4.0.jar:2。 4.0] ...省略3個常用幀 00:52:06.100 [http-bio-8080-exec-3] DEBUG o.s.s.w.c.HttpSessionSecurityContextRepository - SecurityContext爲空或內容爲匿名 - 上下文不會存儲在HttpSession中。 00:52:06.100 [http-bio-8080-exec-3] DEBUG osswcSecurityContextPersistenceFilter - SecurityContextHolder現在已被清除,因爲請求處理已完成 Sep 05,2017 12:52:06 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE:servlet [appServlet]在上下文中使用path [/ api]的Servlet.service()拋出異常[Request processing failed;嵌套異常無法執行階段[dfs],所有碎片失敗; shardFailures {[tdPbTD9IQhSuvkFMYt1WbA] [catalogviews] [0]:RemoteTransportException [[Shellshock] [my_ip:9300] [indices:data/read/search [phase/dfs]]];嵌套:SearchParseException [未能解析搜索源[{「from」:0,「size」:10,「query」:{「match」:{「title」:{「query」:「Top Coat」,「type」 : 「布爾」, 「操作員」: 「OR」, 「分析器」: 「my_analyzer」, 「模糊」: 「1」, 「minimum_should_match」: 「95%」}}}}]];嵌套:QueryParsingException [[match] analyzer [my_analyzer] not found]; } {[tdPbTD9IQhSuvkFMYt1WbA] [catalogviews] [1]:RemoteTransportException [[Shellshock] [my_ip:9300] [indices:data/read/search [phase/dfs]]];嵌套:SearchParseException [未能解析搜索源[{「from」:0,「size」:10,「query」:{「match」:{「title」:{「query」:「Top Coat」,「type」 : 「布爾」, 「操作員」: 「OR」, 「分析器」: 「my_analyzer」, 「模糊」: 「1」, 「minimum_should_match」: 「95%」}}}}]];嵌套:QueryParsingException [[match] analyzer [my_analyzer] not found]; } {[tdPbTD9IQhSuvkFMYt1WbA] [catalogviews] [2]:RemoteTransportException [[Shellshock] [my_ip:9300] [indices:data/read/search [phase/dfs]]];嵌套:SearchParseException [未能解析搜索源[{「from」:0,「size」:10,「query」:{「match」:{「title」:{「query」:「Top Coat」,「type」 : 「布爾」, 「操作員」: 「OR」, 「分析器」: 「my_analyzer」, 「模糊」: 「1」, 「minimum_should_match」: 「95%」}}}}]];嵌套:QueryParsingException [[match] analyzer [my_analyzer] not found]; } {[tdPbTD9IQhSuvkFMYt1WbA] [catalogviews] [3]:RemoteTransportException [[Shellshock] [my_ip:9300] [indices:data/read/search [phase/dfs]]];嵌套:SearchParseException [未能解析搜索源[{「from」:0,「size」:10,「query」:{「match」:{「title」:{「query」:「Top Coat」,「type」 : 「布爾」, 「操作員」: 「OR」, 「分析器」: 「my_analyzer」, 「模糊」: 「1」, 「minimum_should_match」: 「95%」}}}}]];嵌套:QueryParsingException [[match] analyzer [my_analyzer] not found]; } {[tdPbTD9IQhSuvkFMYt1WbA] [catalogviews] [4]:RemoteTransportException [[Shellshock] [my_ip:9300] [indices:data/read/search [phase/dfs]]];嵌套:SearchParseException [未能解析搜索源[{「from」:0,「size」:10,「query」:{「match」:{「title」:{「query」:「Top Coat」,「type」 : 「布爾」, 「操作員」: 「OR」, 「分析器」: 「my_analyzer」, 「模糊」: 「1」, 「minimum_should_match」: 「95%」}}}}]];嵌套:QueryParsingException [[match] analyzer [my_analyzer] not found]; }]根本原因 [catalogviews] QueryParsingException [[match] analyzer [my_analyzer] not found] at org.elasticsearch.index.query.MatchQueryParser.parse(MatchQueryParser.java:101) at org.elasticsearch.index.query .QueryParseContext.parseInnerQuery(QueryParseContext.java:250) at org.elasticsearch.index.query.IndexQueryParserService.innerParse(IndexQueryParserService.java:320) at org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:223 ) 在org.elasticsearch.index.query.IndexQueryParserService.parse(IndexQueryParserService.java:218) 在org.elasticsearch.search.query.QueryParseElement.parse(QueryParseElement.java:33) 在org.elasticsearch.search.SearchService 。parseSource(SearchService.java:856) 在org.elasticsearch.search.SearchService.createContext(SearchService.java:667) 在org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:633) 在org.elasticsearch。在org.elasticsearch.search.action.SearchServiceTransportAction $ SearchDfsTransportHandler.messageReceived(SearchService.java:264) SearchServiceTransportAction.java:357) 在org.elasticsearch.transport.TransportRequestHandler.messageReceived(TransportRequestHandler.java:33) 在org.elasticsearch.transport.RequestHandlerRegistry.processMessageReceived(RequestHandler Registry.java:77) at org.elasticsearch.transport.TransportService $ 4.doRun(TransportService.java:376) at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:37) at java .util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 在java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:624) 在java.lang.Thread.run(Thread.java:748 )
好的,會嘗試並讓你知道。 – Dipt166
嗨Ansaldos,我收到一個錯誤: - 異常無法執行階段[dfs],所有碎片失敗; shardFailures ------->和------> QueryParsingException [[match] analyzer [] not found ............你能否幫忙 – Dipt166
例外說你的分析器丟失 - 所以也許你忘了添加到所有節點。再次檢查,如果問題仍然存在,請顯示您的映射。 – Ansaldos