Как ссылаться на пользовательский класс Java в стадии индекса Fusion Solr Javascript?
На этапе индексации Javascript в Fusion мы можем импортировать классы Java и запускать их в javascript, например:
var imports = new JavaImporter(java.lang.String);
with (imports) {
var name = new String("foo"); ...
}
Если мы настроили сложные Java-классы, как включить jar-файл компиляции в Fusion, чтобы класс можно было импортировать на этапах индексации Javascript для использования?
И где мы можем хранить значения конфигурации для этапа индексации Javascript для поиска и как их получить?
Я думаю о чем-то вроде этого:
var imports = new JavaImporter(mycompany.com.custompkg.SomeParser);
with (imports) {
var some_config = ResourceManager.GetString("key");
var sp = new SomeParser(some_config); ...
}
С уважением, Кельвин
1 ответ
Начиная с Fusion 4.x API и Connectors начали использовать общее расположение для jar, то есть apps / libs. Это разумное место для размещения нестандартных банок, но службы должны быть также про новые банки. Это сделано в двух местах
/jetty/connectors-classic/webapps/connectors-extra-classpath.txt
./jetty/api/webapps/api-extra-classpath.txt
Кроме того, индексные документы могут обрабатываться службой API, поэтому, даже если jar используется только для индексации, зарегистрируйтесь в обоих classpath. Наконец, отказов услуги.
Поместите файл класса Java как файл jar в папку $FUSION_HOME/apps/jetty/api/webapps/api/WEB-INF/lib/.
Я использовал это для доступа к своему пользовательскому классу. var SomeParser = Java.type('mycompany.com.custompkg.SomeParser');