Giter VIP home page Giter VIP logo

elasticray's People

Contributors

abdonpijpelink avatar ajay-kottapally avatar chase-miller avatar kcramakrishna avatar ram-pratap avatar vijay-patil avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

elasticray's Issues

Assets Delete not working

    Wiki    
        Delete not working
        Cause: ES doesn't recognizing Field Name
Document
        Delete not working
        Cause: ES doesn't recognizing Field Name
Folder
        Delete not working
        Cause: ES doesn't recognizing Field Name
Web Content
        Delete not working
        Cause: ES doesn't recognizing Field Name

Elastic Ray v1.3.0 version not support liferay 6.1.1 CE GA2

Steps to produce Issue:::

Place Elastic ray war file in Liferay Deploy folder

Next, Start Liferay Server ,whenever Elastic ray War deploying start ,on that time it is displaying Error "AutoDeployeeException:Elastic ray 1.2.0.war does not support this version of liferay"

04:32:58,868 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:48] Copying web plugin for C:\liferay-portal-6.1.1-ce-ga2\deploy\elasticray-web-1.2.0.0.war
04:32:58,872 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:763] Deploying elasticray-web-1.2.0.0.war
04:32:58,875 ERROR [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:210] com.liferay.portal.kernel.deploy.auto.AutoDeployException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: elasticray-web-1.2.0.0.war does not support this version of Liferay
com.liferay.portal.kernel.deploy.auto.AutoDeployException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: elasticray-web-1.2.0.0.war does not support this version of Liferay
at com.liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:201)
at com.liferay.portal.deploy.auto.WebAutoDeployListener.deploy(WebAutoDeployListener.java:51)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoDeployDir.java:193)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(AutoDeployDir.java:235)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeployScanner.java:54)
Caused by: com.liferay.portal.kernel.deploy.auto.AutoDeployException: elasticray-web-1.2.0.0.war does not support this version of Liferay
at com.liferay.portal.tools.deploy.BaseDeployer.deployFile(BaseDeployer.java:795)
at com.liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:198)
... 4 more
04:33:01,899 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:182] Processing elasticray-web-1.2.0.0.war. This is attempt 2.
04:33:01,909 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][WebAutoDeployListener:48] Copying web plugin for C:\liferay-portal-6.1.1-ce-ga2\deploy\elasticray-web-1.2.0.0.war
04:33:01,911 INFO [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][BaseDeployer:763] Deploying elasticray-web-1.2.0.0.war
04:33:01,914 ERROR [com.liferay.portal.kernel.deploy.auto.AutoDeployScanner][AutoDeployDir:210] com.liferay.portal.kernel.deploy.auto.AutoDeployException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: elasticray-web-1.2.0.0.war does not support this version of Liferay
com.liferay.portal.kernel.deploy.auto.AutoDeployException: com.liferay.portal.kernel.deploy.auto.AutoDeployException: elasticray-web-1.2.0.0.war does not support this version of Liferay
at com.liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:201)
at com.liferay.portal.deploy.auto.WebAutoDeployListener.deploy(WebAutoDeployListener.java:51)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.processFile(AutoDeployDir.java:193)
at com.liferay.portal.kernel.deploy.auto.AutoDeployDir.scanDirectory(AutoDeployDir.java:235)
at com.liferay.portal.kernel.deploy.auto.AutoDeployScanner.run(AutoDeployScanner.java:54)
Caused by: com.liferay.portal.kernel.deploy.auto.AutoDeployException: elasticray-web-1.2.0.0.war does not support this version of Liferay
at com.liferay.portal.tools.deploy.BaseDeployer.deployFile(BaseDeployer.java:795)
at com.liferay.portal.tools.deploy.BaseDeployer.autoDeploy(BaseDeployer.java:198)
... 4 more

Liferay 6.1.30 EE GA3 Elastic Search 1.4.0 Jdk 1.7 Issues

1)Wiki,Blogs,Book Marks Case Sensitive Searches Displaying message "No entries were found that matched the keywords:"
Ex:When I Enter "agile" it displaying results see below screen

bm test

Next , Create Book Mark name as "Methods" and Click on Save button
Next Enter Book Mark name as "Methods" in the search text field and click on Search button ,The Results are "No Entries were found that matched the keyWord" see below screen

bm test

search Portlet Search Displaying "NullPointerException" in Liferay 6.2 EE SP11

Liferay Versions:: Liferay 6.2 EE SP11

Place Elasticray v1.4.0.0 version in liferay deploy folder and start liferay server

Next,Create users like "Test Screen" (Space Between Two words) as shown below screen

image

​Next ,Add Search portlet in Liferay welcome page and search users,here it is displaying Results but it shows "Null Pointer Exception " in Command Prompt.

image

​Log Details:

08:56:59,182 INFO [localhost-startStop-2][HotDeployImpl:138] Deploying elasticray-web from queue
08:56:59,185 INFO [localhost-startStop-2][PluginPackageUtil:1016] Reading plugin package for elasticray-web
09:00:36,296 ERROR [http-bio-8080-exec-9][IncludeTag:129] Current URL /web/guest/home?p_p_id=3&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_3_struts_action=%2Fsearch%2Fsearch&_3_redirect=%2Fweb%2Fguest%2Fhome%3Fp_p_state%3Dmaximized%26p_p_lifecycle%3D0%26p_p_id%3D3%26_3_groupId%3D0%26p_p_mode%3Dview&_3_keywords=Portal+platform&_3_groupId=0 generates exception: javax.servlet.ServletException: com.liferay.portal.kernel.search.SearchException: java.lang.NullPointerException
java.lang.NullPointerException
at com.liferay.portal.kernel.search.DefaultSearchResultPermissionFilter.filterHits(DefaultSearchResultPermissionFilter.java:53)
at com.liferay.portal.kernel.search.BaseSearchResultPermissionFilter.search(BaseSearchResultPermissionFilter.java:42)
at com.liferay.portal.kernel.search.BaseIndexer.search(BaseIndexer.java:527)
at org.apache.jsp.html.portlet.search.facets.folders_jsp._jspService(folders_jsp.java:831)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:432)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:390)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:277)
at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:274)
at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:309)
at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:169)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:299)
at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:57)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.liferay.portal.kernel.servlet.filters.invoker.InvokerFilterChain.doFilter(InvokerFilterChain.java:116)
09:01:19,212 ERROR [http-bio-8080-exec-2][IncludeTag:129] Current URL /web/guest/home?p_p_id=3&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_3_struts_action=%2Fsearch%2Fsearch&_3_redirect=%2Fweb%2Fguest%2Fhome%3Fp_p_id%3D3%26p_p_lifecycle%3D0%26p_p_state%3Dmaximized%26p_p_mode%3Dview%26_3_groupId%3D0&_3_keywords=Test+Screen&_3_groupId=0 generates exception: com.liferay.portal.kernel.search.SearchException: java.lang.NullPointerException
java.lang.NullPointerException
at com.liferay.portal.kernel.search.DefaultSearchResultPermissionFilter.filterHits(DefaultSearchResultPermissionFilter.java:53)
at com.liferay.portal.kernel.search.BaseSearchResultPermissionFilter.search(BaseSearchResultPermissionFilter.java:42)
at com.liferay.portal.kernel.search.BaseIndexer.search(BaseIndexer.java:527)
at org.apache.jsp.html.portlet.search.facets.folders_jsp._jspService(folders_jsp.java:831)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:57)
at com.liferay.portal.security.pacl.servlet.PACLRequestDispatcherWrapper$DispatchPrivilegedExceptionAction.run(PACLRequestDispatcherWrapper.java:111)
at com.liferay.portal.security.pacl.servlet.PACLRequestDispatcherWrapper$DispatchPrivilegedExceptionAction.run(PACLRequestDispatcherWrapper.java:1)
at com.liferay.portal.security.pacl.servlet.PACLRequestDispatcherWrapper.doDispatch(PACLRequestDispatcherWrapper.java:74)
at com.liferay.portal.security.pacl.servlet.PACLRequestDispatcherWrapper.include(PACLRequestDispatcherWrapper.java:56)
at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.doDispatch(ClassLoaderRequestDispatcherWrapper.java:78)
at com.liferay.portal.servlet.ClassLoaderRequestDispatcherWrapper.include(ClassLoaderRequestDispatcherWrapper.java:53)
at com.liferay.taglib.util.IncludeTag.include(IncludeTag.java:295)
at com.liferay.taglib.util.IncludeTag.doInclude(IncludeTag.java:192)
at com.liferay.taglib.util.IncludeTag.doEndTag(IncludeTag.java:83)
at org.apache.jsp.html.portlet.search.search_jsp._jspService(search_jsp.java:1156)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:57)

Liferay permissions performance bottleneck

Results for search are taking too long to show up.

We explored this issue and found that Elasticsearch itself is returning the results fast and elasticray is giving them to Liferay but Liferay permission checking code is slowing up the process.

Liferay is retrieving the permission of each asset/document and matching it to the permissions of the logged in user. i.e. For each asset in the result set, it queries the DB again for its permissions and then matches it against the user. This is not a trivial problem but an abomination none the less and should have been solved earlier. Luckily elasticsearch is the best tool available to solve this problem.

http://stackoverflow.com/questions/10008427/liferay-search-and-security-model

https://issues.liferay.com/browse/LEP-3335

While this is not really a problem with elasticray, unless we handle this, elasticray will not have any utility. We have to try and compensate for Liferay limitation within elasticray.

Solution should be a 2 pronged approach:

  1. We will try and index user id permissions along with asset id in elasticsearch and retrieve only those results matching the permissions. This solves much of the problem.
  2. To make it a complete solution, we will see if we can write a hook for Liferay to check permissions from elasticsearch index or ideally disable this function while using elasticray.
    Edit: Created a new task for this: #16

We will also need to handle run time changes in asset and/or user permissions but
a) re-indexing partially on the fly OR
b) invalidating partial index on the fly . This will force ES to re-index the changed user/asset/permission.

Other issues to be considered:

  1. Inherited permissions for users and groups,
  2. Inherited permissions for assets - i.e. Directory level permissions.

" NoSuchentryException" in liferay 6.2 CE GA2

Place Elasticray v1.3.0 version in liferay 6.2 CE GA2 deploy folder and Start liferay server

Next Go to Users and Organization portlet and Create user First name as "sample Test" etc and search users in users and organization page see below screen search displaying results .

image

Next Add search portlet in the Liferay Welcome page and search users using search portlet it is displaying error i.e "Nosuchentryexception" see below screen

image

Log Details::

09:45:30,263 ERROR [http-bio-8080-exec-5][IncludeTag:129] Current URL /web/guest/welcome?_3_formDate=1432891870973&p_p_id=3&p_p_lifecycle=0&p_p_state=maximized&p_p_mode=view&_3_struts_action=%2Fsearch%2Fsearch&_3_cur=1&_3_format=&_3_keywords=sample+Test&_3_groupId=0&_3_entryClassName=&_3_folderId=&_3_userId=&_3_modified=&_3_modifiedselection=0&_3_modifiedfrom=&_3_modifiedto= generates exception: com.liferay.portlet.asset.NoSuchEntryException: No AssetEntry exists with the key {classNameId=10009, classPK=10954}
com.liferay.portlet.asset.NoSuchEntryException: No AssetEntry exists with the key {classNameId=10009, classPK=10954}
at com.liferay.portlet.asset.service.persistence.AssetEntryPersistenceImpl.findByC_C(AssetEntryPersistenceImpl.java:2979)
at com.liferay.portal.security.lang.DoPrivilegedHandler$InvokePrivilegedExceptionAction.run(DoPrivilegedHandler.java:167)
at com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(DoPrivilegedHandler.java:100)
at com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(DoPrivilegedHandler.java:56)
at com.liferay.portlet.asset.service.impl.AssetEntryLocalServiceImpl.getEntry(AssetEntryLocalServiceImpl.java:238)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:115)
at com.liferay.portal.spring.transaction.DefaultTransactionExecutor.execute(DefaultTransactionExecutor.java:62)
at com.liferay.portal.spring.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:51)
at com.liferay.portal.spring.aop.ServiceBeanMethodInvocation.proceed(ServiceBeanMethodInvocation.java:111)
at com.liferay.portal.spring.aop.ServiceBeanAopProxy.invoke(ServiceBeanAopProxy.java:175)
at com.liferay.portal.security.pacl.PACLInvocationHandler$InvokePrivilegedExceptionAction.run(PACLInvocationHandler.java:109)
at com.liferay.portal.security.pacl.PACLInvocationHandler.doInvoke(PACLInvocationHandler.java:79)
at com.liferay.portal.security.pacl.PACLInvocationHandler.invoke(PACLInvocationHandler.java:51)
at com.liferay.portlet.asset.service.AssetEntryLocalServiceUtil.getEntry(AssetEntryLocalServiceUtil.java:645)
at org.apache.jsp.html.portlet.search.main_005fsearch_005fresult_005fform_jsp._jspService(main_005fsearch_005fresult_005fform_jsp.java:736)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at com.liferay.portal.servlet.DirectRequestDispatcher.include(DirectRequestDispatcher.java:57)
at com.liferay.portal.security.pacl.servlet.PACLRequestDispatcherWrapper$DispatchPrivilegedExceptionAction.run(PACLRequestDispatcherWrapper.java:111)
at com.liferay.portal.security.pacl.servlet.PACLRequestDispatcherWrapper$DispatchPrivilegedExceptionAction.run(PACLRequestDispatcherWrapper.java:1)

Elastic ray v1.3.0 version Reading Plugin displaying Errors in liferay 6.1.30 EE GA3

Liferay 6.1 EE GA3, Elastic Search 1.4.0 , Jdk 1.7,Elastic Ray v1.2.0

Place Elastic ray War v1.2.0 version in liferay 6.1.30 ee ga3 deploy folder

Next, start liferay server ,here Elastic Ray War copied successfully but elastic ray plugin Reading time displaying errors like (AccessControlException , BeancreationException,)

Liferay Log Error Details::::

08:36:18,253 INFO [localhost-startStop-2][PACLPolicyManager:148] Overriding the current security manager to enable plugin security management
08:36:18,258 INFO [localhost-startStop-2][HotDeployImpl:185] Deploying elasticray-web from queue
08:36:18,262 INFO [localhost-startStop-2][PluginPackageUtil:1049] Reading plugin package for elasticray-web
08:36:20,319 ERROR [localhost-startStop-2][ContextLoader:227] Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.rknowsys.portal.search.elastic.client.ClientFactory' defined in ServletContext resource [/WEB-INF/classes/META-INF/elasticsearch-spring.xml]: Invocation of init method failed; nested exception is java.security.AccessControlException: access denied ("java.io.FilePermission" "elasticsearch.yml" "read")
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1422)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:518)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at com.liferay.portal.spring.context.PortletContextLoaderListener.contextInitialized(PortletContextLoaderListener.java:85)
at com.liferay.portal.deploy.hot.SpringHotDeployListener.doInvokeDeploy(SpringHotDeployListener.java:79)
at com.liferay.portal.deploy.hot.SpringHotDeployListener.invokeDeploy(SpringHotDeployListener.java:41)
at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:195)
at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(DoPrivilegedHandler.java:88)
at com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(DoPrivilegedHandler.java:56)
at com.sun.proxy.$Proxy30.fireDeployEvent(Unknown Source)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27)
at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:164)
at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:154)
at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:44)
at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64)
at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56)
at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:54)
at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:116)
at com.liferay.portal.kernel.servlet.SecurePluginContextListener.contextInitialized(SecurePluginContextListener.java:151)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4887)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "elasticsearch.yml" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at com.liferay.portal.security.pacl.PortalSecurityManagerImpl.checkPermission(PortalSecurityManagerImpl.java:265)
at java.lang.SecurityManager.checkRead(Unknown Source)
at java.io.File.exists(Unknown Source)
at org.elasticsearch.env.Environment.resolveConfig(Environment.java:182)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:77)
at org.elasticsearch.client.transport.TransportClient.(TransportClient.java:157)
at org.elasticsearch.client.transport.TransportClient.(TransportClient.java:123)
at com.rknowsys.portal.search.elastic.client.ClientFactoryImpl.afterPropertiesSet(ClientFactoryImpl.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$7.run(AbstractAutowireCapableBeanFactory.java:1533)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1531)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1487)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1419)
... 46 more
08:36:20,369 ERROR [localhost-startStop-2][HotDeployImpl:198] com.liferay.portal.kernel.deploy.hot.HotDeployException: Error initializing Spring for elasticray-web
com.liferay.portal.kernel.deploy.hot.HotDeployException: Error initializing Spring for elasticray-web
at com.liferay.portal.kernel.deploy.hot.BaseHotDeployListener.throwHotDeployException(BaseHotDeployListener.java:46)
at com.liferay.portal.deploy.hot.SpringHotDeployListener.invokeDeploy(SpringHotDeployListener.java:44)
at com.liferay.portal.deploy.hot.HotDeployImpl.doFireDeployEvent(HotDeployImpl.java:195)
at com.liferay.portal.deploy.hot.HotDeployImpl.fireDeployEvent(HotDeployImpl.java:97)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at com.liferay.portal.security.lang.DoPrivilegedHandler.doInvoke(DoPrivilegedHandler.java:88)
at com.liferay.portal.security.lang.DoPrivilegedHandler.invoke(DoPrivilegedHandler.java:56)
at com.sun.proxy.$Proxy30.fireDeployEvent(Unknown Source)
at com.liferay.portal.kernel.deploy.hot.HotDeployUtil.fireDeployEvent(HotDeployUtil.java:27)
at com.liferay.portal.kernel.servlet.PluginContextListener.fireDeployEvent(PluginContextListener.java:164)
at com.liferay.portal.kernel.servlet.PluginContextListener.doPortalInit(PluginContextListener.java:154)
at com.liferay.portal.kernel.util.BasePortalLifecycle.portalInit(BasePortalLifecycle.java:44)
at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:64)
at com.liferay.portal.kernel.util.PortalLifecycleUtil.register(PortalLifecycleUtil.java:56)
at com.liferay.portal.kernel.util.BasePortalLifecycle.registerPortalLifecycle(BasePortalLifecycle.java:54)
at com.liferay.portal.kernel.servlet.PluginContextListener.contextInitialized(PluginContextListener.java:116)
at com.liferay.portal.kernel.servlet.SecurePluginContextListener.contextInitialized(SecurePluginContextListener.java:151)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4887)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5381)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1114)
at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1672)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.rknowsys.portal.search.elastic.client.ClientFactory' defined in ServletContext resource [/WEB-INF/classes/META-INF/elasticsearch-spring.xml]: Invocation of init method failed; nested exception is java.security.AccessControlException: access denied ("java.io.FilePermission" "elasticsearch.yml" "read")
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1422)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:518)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:455)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:293)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:290)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:192)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:895)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:425)
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:282)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:204)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:47)
at com.liferay.portal.spring.context.PortletContextLoaderListener.contextInitialized(PortletContextLoaderListener.java:85)
at com.liferay.portal.deploy.hot.SpringHotDeployListener.doInvokeDeploy(SpringHotDeployListener.java:79)
at com.liferay.portal.deploy.hot.SpringHotDeployListener.invokeDeploy(SpringHotDeployListener.java:41)
... 31 more
Caused by: java.security.AccessControlException: access denied ("java.io.FilePermission" "elasticsearch.yml" "read")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at com.liferay.portal.security.pacl.PortalSecurityManagerImpl.checkPermission(PortalSecurityManagerImpl.java:265)
at java.lang.SecurityManager.checkRead(Unknown Source)
at java.io.File.exists(Unknown Source)
at org.elasticsearch.env.Environment.resolveConfig(Environment.java:182)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:77)
at org.elasticsearch.client.transport.TransportClient.(TransportClient.java:157)
at org.elasticsearch.client.transport.TransportClient.(TransportClient.java:123)
at com.rknowsys.portal.search.elastic.client.ClientFactoryImpl.afterPropertiesSet(ClientFactoryImpl.java:67)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$7.run(AbstractAutowireCapableBeanFactory.java:1533)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeCustomInitMethod(AbstractAutowireCapableBeanFactory.java:1531)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1487)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1419)
... 46 more
09:19:09,444 INFO [localhost-startStop-3][PluginPackageUtil:1049] Reading plugin package for elasticray-web
09:19:09,489 INFO [localhost-startStop-3][PACLPolicyManager:115] Disabling PACL policy manager
09:19:09,489 INFO [localhost-startStop-3][PACLPolicyManager:178] Resetting to the original security manager
09:19:09,492 INFO [localhost-startStop-3][PluginPackageUtil:1049] Reading plugin package for portal-compat-hook
09:19:09,511 INFO [localhost-startStop-3][HookHotDeployListener:834] Hook for portal-compat-hook was unregistered
09:19:09,515 INFO [localhost-startStop-3][HotDeployEvent:109] Plugin marketplace-portlet requires portal-compat-hook
09:19:09,515 INFO [localhost-startStop-3][PluginPackageUtil:1049] Reading plugin package for marketplace-portlet
09:19:09,549 INFO [localhost-startStop-3][HookHotDeployListener:834] Hook for marketplace-portlet was unregistered
09:19:09,550 INFO [localhost-startStop-3][PortletHotDeployListener:491] Unregistering portlets for marketplace-portlet
09:19:09,566 INFO [localhost-startStop-3][PortletHotDeployListener:530] 2 portlets for marketplace-portlet was unregistered

Issue with Org Search

Organization search is not working in some scenarios. Like Test Admin (it contains Test-Admin in original), its not giving proper results. It may be due to incorrect analyzer/tokenizer.

Problem using own analyzer configuration

Hi, I am trying to set up Liferay with Elasticsearch and use hunspell as analyzer for czech language. I have set up the index with following analyzer definition:

PUT /liferay_0
{
   "settings": {
      "analysis": {
         "analyzer": {
            "cestina_hunspell": {
               "type": "custom",
               "tokenizer": "standard",
               "filter": [
                  "stopwords_CZ",
                  "cs_CZ",
                  "icu_folding",
                  "stopwords_CZ",
                  "remove_duplicities"
               ]
            }
         },
         "filter": {
            "stopwords_CZ": {
               "type": "stop",
               "stopwords": [
                  "právě",
                  "že",
                  "_czech_"
               ],
               "ignore_case": true
            },
            "cs_CZ": {
               "type": "hunspell",
               "locale": "cs_CZ",
               "dedup": true,
               "recursion_level": 0
            },
            "remove_duplicities": {
               "type": "unique",
               "only_on_same_position": true
             }
           }
      }
   }
}

It seems to work on czech text, when I try to call the analyzer through the REST API:

curl 'localhost:9200/i/_analyze?analyzer=cestina_hunspell&pretty=true' -d 'Právě se mi zdálo, že se kolem okna něco mihlo.'

I get tokens:

  • zdát
  • kolem, kolo
  • okno
  • něco
  • mihnout

which are the wanted tokens.

But when I try to search web content with such text (indexed after new settings) I don´t get right results (I have to provide exact word, to get result).

Any ideas what could cause this behaviour.

Thanks.

Amazon Web Services - AWS integrations

hi,

We have tried to integrate Liferay with ElasticSearch service from AWS. We have encountered a problem: this pllugin is using TCP ports and AWS ES only allows HTTP access.
Does anyone found this limitation? is there a way to fix it?
Thank you.

Regards,

search users using search portlet It is displaying "SearchParseException & ClassCastException" in Elastic Search 1.4.0 version

Versions :: Liferay 6.2 CE GA2,Elastic Search 1.4.0,Elastic Ray v1.3.0.0 ,Jdk 1.5
Place Elastic Ray war file in liferay Deploy folder & Start liferay Application Server
Next, Go to Admin > Click on Control panel tab
Next ,Click on Server administration Link button in Control panel
Next ,Click on Execute button near 'Reindex all search indexes'
Next Create users and organization
Next ,search users & Organization in user and Organization page ,Here It is displaying Results see below screen

image

Next Add Search Protlet by click on Add Button in Liferay welcome page

image

While try to do user or organization search using search portlet ,it is displaying "SearchParseException & ClassCastException" in Elastic Search 1.4.0 Console page

[2015-03-30 12:40:05,632][DEBUG][action.search.type ] [Astrid Bloom] [liferay][3], node[EZ4sfc8cT6yYm06QAU9-PQ], [P], s[STARTED]: Failed to execute [org.elasticsearch.action.search.SearchRequest@ffd379]
org.elasticsearch.search.SearchParseException: [liferay][3]: query[+(+companyId:10154 +((+entryClassName:com.liferay.portal.model.user +status:0) (+entryClassName:com.liferay.portlet.bookmarks.model.bookmarksentry +status:0) (+entryClassName:com.liferay.portlet.bookmarks.model.bookmarksfolder +status:0) (+entryClassName:com.liferay.portlet.blogs.model.blogsentry +status:0) (+entryClassName:com.liferay.portlet.documentlibrary.model.dlfileentry +status:0 +hidden:false) (+entryClassName:com.liferay.portlet.documentlibrary.model.dlfolder +status:0 +hidden:false) (+entryClassName:com.liferay.portlet.journal.model.journalarticle +status:0 +head:true) (+entryClassName:com.liferay.portlet.journal.model.journalfolder +status:0) (+entryClassName:com.liferay.portlet.messageboards.model.mbmessage +status:0 +discussion:false) (+entryClassName:com.liferay.portlet.wiki.model.wikipage +status:0))) +(assetCategoryTitles:versionassetCategoryTitles_en_US:version assetTagNames:version comments:version content:version description:version properties:version title:version url:version userName:version city:version country:version emailAddress:version firstName:version fullName:version lastName:version middleName:version region:version screenName:version street:version zip:version ddmContent:version extension:version fileEntryTypeId:version path:version classPK:version content_en_US:version description_en_US:version entryClassPK:version title_en_US:version type:version articleId:version)],from[0],size[25]: Parse Failure [Failed to parse source [{"from":0,"size":25,"query":{"query_string":{"query":"+(+(companyId:10154) +((+(entryClassName:com.liferay.portal.model.User) +(status:0)) (+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksEntry) +(status:0)) (+(entryClassName:com.liferay.portlet.bookmarks.model.BookmarksFolder) +(status:0)) (+(entryClassName:com.liferay.portlet.blogs.model.BlogsEntry) +(status:0)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0) +(hidden:false)) (+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFolder) +(status:0) +(hidden:false)) (+(entryClassName:com.liferay.portlet.journal.model.JournalArticle) +(status:0) +(head:true)) (+(entryClassName:com.liferay.portlet.journal.model.JournalFolder) +(status:0)) (+(entryClassName:com.liferay.portlet.messageboards.model.MBMessage) +(status:0) +(discussion:false)) (+(entryClassName:com.liferay.portlet.wiki.model.WikiPage) +(status:0)))) +(assetCategoryTitles:versionassetCategoryTitles_en_US:version assetTagNames:version comments:version content:version description:version properties:version title:version url:version userName:version city:version country:version emailAddress:version firstName:version fullName:version lastName:version middleName:version region:version screenName:version street:version zip:version ddmContent:version extension:Version fileEntryTypeId:version path:version classPK:version content_en_US:version description_en_US:version entryClassPK:Version title_en_US:version type:Version articleId:version)"}},"sort":[{"_score":{}}],"facets":{"userId":{"terms":{"field":"userId","size":10}},"assetTagNames":{"terms":{"field":"assetTagNames","size":10}},"modified":{"range":{"field":"modified","ranges":[{"from":"20150330060000","to":"20150330080000"},{"from":"20150329070000","to":"20150330080000"},{"from":"20150323070000","to":"20150330080000"},{"from":"20150302070000","to":"20150330080000"},{"from":"20140330070000","to":"20150330080000"}]}},"assetCategoryIds":{"terms":{"field":"assetCategoryIds","size":10}},"entryClassName":{"terms":{"field":"entryClassName","size":10}},"folderId":{"terms":{"field":"folderId","size":10}},"groupId":{"terms":{"field":"groupId","size":10}}},"highlight":{"fields":{"content":{"fragment_size":80,"number_of_fragments":3},"title":{"fragment_size":80,"number_of_fragments":3},"content_en_US":{"fragment_size":80,"number_of_fragments":3},"title_en_US":{"fragment_size":80,"number_of_fragments":3}}}}]]
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:681)
at org.elasticsearch.search.SearchService.createContext(SearchService.java:537)
at org.elasticsearch.search.SearchService.createAndPutContext(SearchService.java:509)
at org.elasticsearch.search.SearchService.executeQueryPhase(SearchService.java:264)
at org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:231)
at org.elasticsearch.search.action.SearchServiceTransportAction$5.call(SearchServiceTransportAction.java:228)
at org.elasticsearch.search.action.SearchServiceTransportAction$23.run(SearchServiceTransportAction.java:559)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Number
at org.elasticsearch.search.facet.range.RangeFacetParser.parse(RangeFacetParser.java:163)
at org.elasticsearch.search.facet.FacetParseElement.parse(FacetParseElement.java:93)
at org.elasticsearch.search.SearchService.parseSource(SearchService.java:665)
... 9 more

Spelling suggestions in query as well as results?

Can we have spelling suggestions during query entry? Similar to google but the suggestions will be from indexed words and not standard dictionary.

Can we have "did you mean xxxxx" similar to google suggestions.

Media Gallery Issue

While Searching a File in Media Gallery portlet, results are not display. And portlet/Liferay is sending a request to ES server. Please find the below query for details.

12:47:24,684 INFO [http-bio-9090-exec-10][ElasticsearchIndexSearcher:48] Query String {
"query_string" : {
"query" : "+(+((+(entryClassName:com.liferay.portlet.documentlibrary.model.DLFileEntry) +(status:0) +(folderId:2247701))) +(+(groupId:1975084) +(scopeGroupId:1975084))) +(assetCategoryTitles:jim assetTagNames:jim comments:jim content:jim description:jim properties:jim title:jim url:jim userName:jim ddm/2003137/select2235:jim ddm/2003137/select3212:jim ddm/2003137/select4115:jim ddm/2003137/select5069:jim ddm/2003138/select2305:jim ddm/2003138/select3229:jim ddm/2003138/select4282:jim ddm/2003139/ddm-date3054:jim ddm/2003139/text2217:jim ddm/2003139/text4569:jim ddm/2003139/text5638:jim ddm/2003139/textarea6584:jim ddm/2003139/textarea7502:jim ddm/2003141/ddm-date18949:jim ddm/2003141/ddm-date20127:jim ddm/2003141/select10264:jim ddm/2003141/select4893:jim ddm/2003141/text14822:jim ddm/2003141/text17700:jim ddm/2003141/text2087:jim ddm/2003143/radio5547:jim ddm/2003143/text2033:jim ddm/2003143/textarea2873:jim ddm/2003145/text2082:jim ddm/2003145/text2979:jim ddm/2003147/select2890:jim ddm/2003147/select3864:jim ddm/2003147/select4831:jim ddm/2003147/select5929:jim ddm/2003147/text1993:jim ddm/2003148/ClimateForcast_PROGRAM_ID:jim ddm/2003148/ClimateForcast_COMMAND_LINE:jim ddm/2003148/ClimateForcast_HISTORY:jim ddm/2003148/ClimateForcast_TABLE_ID:jim ddm/2003148/ClimateForcast_INSTITUTION:jim ddm/2003148/ClimateForcast_SOURCE:jim ddm/2003148/ClimateForcast_CONTACT:jim ddm/2003148/ClimateForcast_PROJECT_ID:jim ddm/2003148/ClimateForcast_CONVENTIONS:jim ddm/2003148/ClimateForcast_REFERENCES:jim ddm/2003148/ClimateForcast_ACKNOWLEDGEMENT:jim ddm/2003148/ClimateForcast_REALIZATION:jim ddm/2003148/ClimateForcast_EXPERIMENT_ID:jim ddm/2003148/ClimateForcast_COMMENT:jim ddm/2003148/ClimateForcast_MODEL_NAME_ENGLISH:jim ddm/2003148/CreativeCommons_LICENSE_URL:jim ddm/2003148/CreativeCommons_LICENSE_LOCATION:jim ddm/2003148/CreativeCommons_WORK_TYPE:jim ddm/2003148/DublinCore_NAMESPACE_URI_DC:jim ddm/2003148/DublinCore_NAMESPACE_URI_DC_TERMS:jim ddm/2003148/DublinCore_PREFIX_DC:jim ddm/2003148/DublinCore_PREFIX_DC_TERMS:jim ddm/2003148/DublinCore_FORMAT:jim ddm/2003148/DublinCore_IDENTIFIER:jim ddm/2003148/DublinCore_MODIFIED:jim ddm/2003148/DublinCore_CONTRIBUTOR:jim ddm/2003148/DublinCore_COVERAGE:jim ddm/2003148/DublinCore_CREATOR:jim ddm/2003148/DublinCore_CREATED:jim ddm/2003148/DublinCore_DATE:jim ddm/2003148/DublinCore_DESCRIPTION:jim ddm/2003148/DublinCore_LANGUAGE:jim ddm/2003148/DublinCore_PUBLISHER:jim ddm/2003148/DublinCore_RELATION:jim ddm/2003148/DublinCore_RIGHTS:jim ddm/2003148/DublinCore_SOURCE:jim ddm/2003148/DublinCore_SUBJECT:jim ddm/2003148/DublinCore_TITLE:jim ddm/2003148/DublinCore_TYPE:jim ddm/2003148/Geographic_LATITUDE:jim ddm/2003148/Geographic_LONGITUDE:jim ddm/2003148/Geographic_ALTITUDE:jim ddm/2003148/HttpHeaders_CONTENT_ENCODING:jim ddm/2003148/HttpHeaders_CONTENT_LANGUAGE:jim ddm/2003148/HttpHeaders_CONTENT_LENGTH:jim ddm/2003148/HttpHeaders_CONTENT_LOCATION:jim ddm/2003148/HttpHeaders_CONTENT_DISPOSITION:jim ddm/2003148/HttpHeaders_CONTENT_MD5:jim ddm/2003148/HttpHeaders_CONTENT_TYPE:jim ddm/2003148/HttpHeaders_LAST_MODIFIED:jim ddm/2003148/HttpHeaders_LOCATION:jim ddm/2003148/Message_MESSAGE_RECIPIENT_ADDRESS:jim ddm/2003148/Message_MESSAGE_FROM:jim ddm/2003148/Message_MESSAGE_TO:jim ddm/2003148/Message_MESSAGE_CC:jim ddm/2003148/Message_MESSAGE_BCC:jim ddm/2003148/MSOffice_KEYWORDS:jim ddm/2003148/MSOffice_COMMENTS:jim ddm/2003148/MSOffice_LAST_AUTHOR:jim ddm/2003148/MSOffice_AUTHOR:jim ddm/2003148/MSOffice_APPLICATION_NAME:jim ddm/2003148/MSOffice_REVISION_NUMBER:jim ddm/2003148/MSOffice_TEMPLATE:jim ddm/2003148/MSOffice_TOTAL_TIME:jim ddm/2003148/MSOffice_PRESENTATION_FORMAT:jim ddm/2003148/MSOffice_NOTES:jim ddm/2003148/MSOffice_MANAGER:jim ddm/2003148/MSOffice_APPLICATION_VERSION:jim ddm/2003148/MSOffice_VERSION:jim ddm/2003148/MSOffice_CONTENT_STATUS:jim ddm/2003148/MSOffice_CATEGORY:jim ddm/2003148/MSOffice_COMPANY:jim ddm/2003148/MSOffice_SECURITY:jim ddm/2003148/MSOffice_SLIDE_COUNT:jim ddm/2003148/MSOffice_PAGE_COUNT:jim ddm/2003148/MSOffice_PARAGRAPH_COUNT:jim ddm/2003148/MSOffice_LINE_COUNT:jim ddm/2003148/MSOffice_WORD_COUNT:jim ddm/2003148/MSOffice_CHARACTER_COUNT:jim ddm/2003148/MSOffice_CHARACTER_COUNT_WITH_SPACES:jim ddm/2003148/MSOffice_TABLE_COUNT:jim ddm/2003148/MSOffice_IMAGE_COUNT:jim ddm/2003148/MSOffice_OBJECT_COUNT:jim ddm/2003148/MSOffice_EDIT_TIME:jim ddm/2003148/MSOffice_CREATION_DATE:jim ddm/2003148/MSOffice_LAST_SAVED:jim ddm/2003148/MSOffice_LAST_PRINTED:jim ddm/2003148/MSOffice_USER_DEFINED_METADATA_NAME_PREFIX:jim ddm/2003148/TIFF_BITS_PER_SAMPLE:jim ddm/2003148/TIFF_IMAGE_LENGTH:jim ddm/2003148/TIFF_IMAGE_WIDTH:jim ddm/2003148/TIFF_SAMPLES_PER_PIXEL:jim ddm/2003148/TIFF_FLASH_FIRED:jim ddm/2003148/TIFF_EXPOSURE_TIME:jim ddm/2003148/TIFF_F_NUMBER:jim ddm/2003148/TIFF_FOCAL_LENGTH:jim ddm/2003148/TIFF_ISO_SPEED_RATINGS:jim ddm/2003148/TIFF_EQUIPMENT_MAKE:jim ddm/2003148/TIFF_EQUIPMENT_MODEL:jim ddm/2003148/TIFF_SOFTWARE:jim ddm/2003148/TIFF_ORIENTATION:jim ddm/2003148/TIFF_RESOLUTION_HORIZONTAL:jim ddm/2003148/TIFF_RESOLUTION_VERTICAL:jim ddm/2003148/TIFF_RESOLUTION_UNIT:jim ddm/2003148/TIFF_ORIGINAL_DATE:jim ddm/2003148/TikaMetadataKeys_RESOURCE_NAME_KEY:jim ddm/2003148/TikaMetadataKeys_PROTECTED:jim ddm/2003148/TikaMetadataKeys_EMBEDDED_RELATIONSHIP_ID:jim ddm/2003148/TikaMimeKeys_TIKA_MIME_FILE:jim ddm/2003148/TikaMimeKeys_MIME_TYPE_MAGIC:jim ddm/2003148/XMPDM_DURATION:jim ddm/2003148/XMPDM_ABS_PEAK_AUDIO_FILE_PATH:jim ddm/2003148/XMPDM_ALBUM:jim ddm/2003148/XMPDM_ALT_TAPE_NAME:jim ddm/2003148/XMPDM_ARTIST:jim ddm/2003148/XMPDM_AUDIO_MOD_DATE:jim ddm/2003148/XMPDM_AUDIO_SAMPLE_RATE:jim ddm/2003148/XMPDM_AUDIO_SAMPLE_TYPE:jim ddm/2003148/XMPDM_AUDIO_CHANNEL_TYPE:jim ddm/2003148/XMPDM_AUDIO_COMPRESSOR:jim ddm/2003148/XMPDM_COMPOSER:jim ddm/2003148/XMPDM_COPYRIGHT:jim ddm/2003148/XMPDM_ENGINEER:jim ddm/2003148/XMPDM_FILE_DATA_RATE:jim ddm/2003148/XMPDM_GENRE:jim ddm/2003148/XMPDM_INSTRUMENT:jim ddm/2003148/XMPDM_KEY:jim ddm/2003148/XMPDM_LOG_COMMENT:jim ddm/2003148/XMPDM_LOOP:jim ddm/2003148/XMPDM_NUMBER_OF_BEATS:jim ddm/2003148/XMPDM_METADATA_MOD_DATE:jim ddm/2003148/XMPDM_PULL_DOWN:jim ddm/2003148/XMPDM_RELATIVE_PEAK_AUDIO_FILE_PATH:jim ddm/2003148/XMPDM_RELEASE_DATE:jim ddm/2003148/XMPDM_SCALE_TYPE:jim ddm/2003148/XMPDM_SCENE:jim ddm/2003148/XMPDM_SHOT_DATE:jim ddm/2003148/XMPDM_SHOT_LOCATION:jim ddm/2003148/XMPDM_SHOT_NAME:jim ddm/2003148/XMPDM_SPEAKER_PLACEMENT:jim ddm/2003148/XMPDM_STRETCH_MODE:jim ddm/2003148/XMPDM_TAPE_NAME:jim ddm/2003148/XMPDM_TEMPO:jim ddm/2003148/XMPDM_TIME_SIGNATURE:jim ddm/2003148/XMPDM_TRACK_NUMBER:jim ddm/2003148/XMPDM_VIDEO_ALPHA_MODE:jim ddm/2003148/XMPDM_VIDEO_ALPHA_UNITY_IS_TRANSPARENT:jim ddm/2003148/XMPDM_VIDEO_COLOR_SPACE:jim ddm/2003148/XMPDM_VIDEO_COMPRESSOR:jim ddm/2003148/XMPDM_VIDEO_FIELD_ORDER:jim ddm/2003148/XMPDM_VIDEO_FRAME_RATE:jim ddm/2003148/XMPDM_VIDEO_MOD_DATE:jim ddm/2003148/XMPDM_VIDEO_PIXEL_DEPTH:jim ddm/2003148/XMPDM_VIDEO_PIXEL_ASPECT_RATIO:jim extension:jim fileEntryTypeId:jim path:jim)"
}
}

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.