I am trying to create an index with the following settings (I don't have a Hebrew plugin and I am trying to create a simple Hebrew analyzer):
{
"analysis" : {
"filter" : {
"hebrew_common_grams_index" : {
"type" : "common_grams",
"common_words" : ["אבל", "או", "אולי", "אותה", "אותו", "אותי", "אותך", "אותם", "אותן", "אותנו", "אז", "אחר", "אחרות", "אחרי", "אחרים", "אחרת", "אי", "איזה", "איך", "אין", "איפה", "איתה", "איתו", "איתי", "איתך", "איתכם", "איתכן", "איתם", "איתן", "איתנו", "אך", "אל", "אלה", "אלו", "אם", "אנחנו", "אני", "אם", "אף", "אצל", "אשר", "את", "אתה", "אתכם", "אתכן", "אתם", "אתן", "באמצע", "באמצעות", "בגלל", "בין", "בלי", "במידה", "ברם", "בשביל", "בתוך", "גם", "דרך", "הוא", "היא", "היה", "היכן", "היתה", "היתי", "הייתי", "הם", "הן", "הנה", "הרי", "ואילו", "ואת", "זאת", "זה", "יהיה", "יוכל", "יוכלו", "יותר", "יכול", "יכולה", "יכולות", "יכולים", "יכלו", "יש", "כאן", "כאשר", "כולם", "כולן", "כזה", "כי", "כיצד", "כך", "ככה", "כל", "כלל", "כמו", "כן", "כפי", "כאשר", "לא", "לאו", "לאן", "לבין", "לה", "להיות", "להם", "להן", "לו", "לי", "לכם", "לכן", "למה", "למטה", "למעלה", "למרות", "לנו", "לעבר", "להיכן", "לפיכך", "לפני", "מאד", "מאחורי", "מאין", "מאיפה", "מבלי", "מבעד", "מדוע", "מדי", "מה", "מהיכן", "מול", "מחוץ", "מי", "מכאן", "מכיוון", "מלבד", "מן", "מניין", "מנין", "מסוגל", "מעט", "מעטים", "מעל", "מצד", "מתחת", "מתי", "נגד", "נו", "עד", "על", "עלי", "עליה", "עליהם", "עליהן", "עליו", "עליך", "עליכם", "עלינו", "עם", "עצמה", "עצמו", "עצמי", "עצמם", "עצמן", "עצמנו", "פה", "רק", "שוב", "שוב", "של", "שלה", "שלהם", "שלהן", "שלו", "שלי", "שלך", "שלכם", "שלכן", "שלנו", "שם", "תהיה", "תחת"],
"ignore_case" : true,
"query_mode" : false
},
"hebrew_common_grams_query" : {
"type" : "common_grams",
"common_words" : ["אבל", "או", "אולי", "אותה", "אותו", "אותי", "אותך", "אותם", "אותן", "אותנו", "אז", "אחר", "אחרות", "אחרי", "אחרים", "אחרת", "אי", "איזה", "איך", "אין", "איפה", "איתה", "איתו", "איתי", "איתך", "איתכם", "איתכן", "איתם", "איתן", "איתנו", "אך", "אל", "אלה", "אלו", "אם", "אנחנו", "אני", "אם", "אף", "אצל", "אשר", "את", "אתה", "אתכם", "אתכן", "אתם", "אתן", "באמצע", "באמצעות", "בגלל", "בין", "בלי", "במידה", "ברם", "בשביל", "בתוך", "גם", "דרך", "הוא", "היא", "היה", "היכן", "היתה", "היתי", "הייתי", "הם", "הן", "הנה", "הרי", "ואילו", "ואת", "זאת", "זה", "יהיה", "יוכל", "יוכלו", "יותר", "יכול", "יכולה", "יכולות", "יכולים", "יכלו", "יש", "כאן", "כאשר", "כולם", "כולן", "כזה", "כי", "כיצד", "כך", "ככה", "כל", "כלל", "כמו", "כן", "כפי", "כאשר", "לא", "לאו", "לאן", "לבין", "לה", "להיות", "להם", "להן", "לו", "לי", "לכם", "לכן", "למה", "למטה", "למעלה", "למרות", "לנו", "לעבר", "להיכן", "לפיכך", "לפני", "מאד", "מאחורי", "מאין", "מאיפה", "מבלי", "מבעד", "מדוע", "מדי", "מה", "מהיכן", "מול", "מחוץ", "מי", "מכאן", "מכיוון", "מלבד", "מן", "מניין", "מנין", "מסוגל", "מעט", "מעטים", "מעל", "מצד", "מתחת", "מתי", "נגד", "נו", "עד", "על", "עלי", "עליה", "עליהם", "עליהן", "עליו", "עליך", "עליכם", "עלינו", "עם", "עצמה", "עצמו", "עצמי", "עצמם", "עצמן", "עצמנו", "פה", "רק", "שוב", "שוב", "של", "שלה", "שלהם", "שלהן", "שלו", "שלי", "שלך", "שלכם", "שלכן", "שלנו", "שם", "תהיה", "תחת"],
"ignore_case" : true,
"query_mode" : true
}
},
"analyzer" : {
"hebrew_index" : {
"type" : "custom",
"tokenizer" : "whitespace",
"char_filter" : ["html_strip"],
"filter" : ["lowercase", "english_stemmer", "hebrew_common_grams_index"]
},
"hebrew" : {
"type" : "custom",
"tokenizer" : "whitespace",
"char_filter" : ["html_strip"],
"filter" : ["lowercase", "english_stemmer", "hebrew_common_grams_query"]
},
"default_search" : {
"type" : "hebrew"
},
"default" : {
"type" : "hebrew"
}
}
}
}
but when I run it I get the following error:
[2015-07-15 10:26:53,389][DEBUG][action.admin.indices.create] [Citizen V] [fts-hebrew] failed to create
org.elasticsearch.indices.IndexCreationException: [fts-hebrew] failed to create index
at org.elasticsearch.indices.IndicesService.createIndex(IndicesService.java:338)
at org.elasticsearch.cluster.metadata.MetaDataCreateIndexService$2.execute(MetaDataCreateIndexService.java:371)
at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:374)
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.runAndClean(PrioritizedEsThreadPool
Executor.java:188)
at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor
.java:158)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:744)
Caused by: org.elasticsearch.ElasticsearchIllegalArgumentException: failed to find analyzer type [hebrew] or tokenizer for [default]
at org.elasticsearch.index.analysis.AnalysisModule.configure(AnalysisModule.java:372)
at org.elasticsearch.common.inject.AbstractModule.configure(AbstractModule.java:60)
at org.elasticsearch.common.inject.spi.Elements$RecordingBinder.install(Elements.java:204)
at org.elasticsearch.common.inject.spi.Elements.getElements(Elements.java:85)
at org.elasticsearch.common.inject.InjectorShell$Builder.build(InjectorShell.java:130)
at org.elasticsearch.common.inject.InjectorBuilder.build(InjectorBuilder.java:99)
at org.elasticsearch.common.inject.InjectorImpl.createChildInjector(InjectorImpl.java:131)
at org.elasticsearch.common.inject.ModulesBuilder.createChildInjector(ModulesBuilder.java:69)
at org.elasticsearch.indices.IndicesService.createIndex(IndicesService.java:336)
... 7 more
Caused by: org.elasticsearch.common.settings.NoClassSettingsException: Failed to load class setting [type] with value [hebrew]
at org.elasticsearch.common.settings.ImmutableSettings.loadClass(ImmutableSettings.java:476)
at org.elasticsearch.common.settings.ImmutableSettings.getAsClass(ImmutableSettings.java:464)
at org.elasticsearch.index.analysis.AnalysisModule.configure(AnalysisModule.java:356)
... 15 more
Caused by: java.lang.ClassNotFoundException: org.elasticsearch.index.analysis.hebrew.HebrewAnalyzerProvider
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.elasticsearch.common.settings.ImmutableSettings.loadClass(ImmutableSettings.java:474)
What's wrong with this setting and what is the org.elasticsearch.index.analysis.hebrew.HebrewAnalyzerProvider class that cannot be found?
Thanks!