问题标签 [searchable-plugin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
hibernate - 为什么 Grails Searchable Plugin 会导致 Hibernate AutoFlush 出现错误?
在我尝试排除故障的Grails 1.2.5 项目中,我们使用 Grails Searchable 插件.5.5.1。
问题在于,每当我们尝试索引大型集合域类时,Grails 都会不断抛出:
ERROR hibernate.AssertionFailure - 发生断言失败(这可能表明 Hibernate 中存在错误,但更可能是由于会话使用不安全) org.hibernate.AssertionFailure:集合 [domain-class] 未由 flush() 处理
但是涉及的域类已经被hibernate映射和使用,除了对可搜索插件的调用之外没有问题。
可搜索插件的使用如下:
- 创建一个指南针会话
compass.openSession()
- 开始罗盘交易:
compassSession.beginTransaction()
- 然后
compassSession.create(result.get(0))
在一个重要的未索引域类上调用 - finally
compassTransaction.commit()
被调用来提交事务。 - 转到 2 并处理下一个域类
在第 3 和第 4 个域类之间,触发了引发错误的自动刷新。
谁能给我有关如何解决此问题的任何提示?
有没有人遇到过这个问题?
我知道他们在可搜索插件的 0.5 之前版本中对此存在系统性问题。 这些问题可能没有完全解决吗?
grails - 如何以编程方式从 grails 中删除控制器?
我与 Searchable 插件有一些冲突。
我有一个过滤器,它在前阶段获取有问题的控制器。它通过查找第一个与控制器名称相同的控制器来获取请求的控制器,控制器名称是 grails 过滤器中可用的属性。
但是,我的问题是 Searchable 插件有自己的 SearchableController,而我自己制作了自己的 SearchableController 版本。这样做的效果是我有两个具有相同名称的类,它们与我的查找逻辑中的 controllerName 匹配。
我可以以某种方式删除插件附带的 SearchableController 吗?我有哪些选择?
grails - 可搜索插件是否仅适用于休眠?
我使用 grails-1.3.2 和 hbase-0.2.4 插件。
我想使用可搜索插件,但是当我用它安装插件时出现休眠插件,它与 hbase-0.2.4 插件冲突。
当我卸载休眠插件时,我无法运行我的应用程序并收到以下消息:
错误:由于缺少依赖项,以下插件无法加载:[可搜索] - 插件:可搜索,依赖项:[dataSource,domainClass,i18n,core,hibernate]
我的问题是:
可搜索插件是否仅适用于休眠插件?
如果没有,我必须如何为 hbase 插件配置它?
谁知道 hbase 有什么可搜索的插件????
谢谢,安娜
groovy - 如何使用 Grails 可搜索插件按日期搜索
我正在使用 Grails 的可搜索插件,我想知道如何按日期搜索?
我的 groovy 类有一个像这样的日期字段
我可以在值字段中搜索内容,但不能在日期字段中搜索。
sorting - grails 可搜索插件按枚举类型排序
我有一个名为“theStatus”的枚举类型(枚举类是状态)属性的 PrintRequest 类,我希望可根据 PrintRequest 的状态进行排序。我创建了一个映射:
在我的 PrintRequest 域类中,但搜索方法仍然不进行任何排序。我这样调用搜索方法:
其中 aParams.sort = "theStatus" 和 aParams.order = "asc"
为什么无法搜索工作?它返回与查询字符串匹配的 PrintRequest 列表,但它不根据状态进行排序。
PrintRequest.groovy 看起来像
php - 设置学说 1.2.x 可搜索行为索引表名称?
我正在使用 Zend Framework 和教义 1.2.x 有没有办法在添加 Doctrine Searchable Behaviour 时定义索引表名称?./doctrine build-all-reload 脚本生成奇怪的“model__info_index”表名而不是“info_index”
这是我的配置://shema.yml
//应用程序.ini
grails - remoteField 未触发操作调用
所以我正在尝试创建一个搜索字段来即时过滤联系人。因此,我将主要结果显示在模板(Contact/list.gsp)中:
这是我的模板(_searchResults.gsp):
所以目前,当我输入文本时,什么都没有发生。我在搜索方法中添加了一个打印输出,根本没有调用它。就好像我的 remoteField 停滞不前并且不活跃。
我是否缺少此标签的先决条件?我在网上查看了官方API,但根本没有看到任何表明这一点的东西。2.0.0 有什么新东西吗?
我正在使用可搜索插件在控制器中提取结果,仅供参考。
谢谢大家的帮助!
更新:所以我在 main.gsp 中明确添加了 javascript 库调用,我似乎从服务器收到了一些响应,这是个好消息(missingPropertyException):
我必须将插件定义添加到 jQuery 的库调用中(库 = jquery 和插件 = 查询)
grails - Grails - 可搜索插件:我可以阻止它仅依赖 Lucene 索引吗?
好吧,我一直在尝试让可搜索插件与我当前的应用程序一起使用,但有一件事情困扰着我:
每次搜索都完全依赖于 Lucene 索引。
这会导致一些令人不安的问题(例如:http: //jan-so.blogspot.mx/2009/04/eager-fetching-and-searchable-plugin-in.html)。基本上,每个一对多关系在搜索结果中都会有一个空值。为避免这种情况,您必须使很多域可搜索,但是,这意味着我的数据库的一半将映射到 Lucene 索引中……这听起来是错误的。
我目前处于开发环境中,所以所有内容都加载到内存中,Lucene 使 java 使用的内存至少增加了 40%(总共使用了 1.2GB,并且我已经尽可能限制了其中包含的内容)only
和exclude
)。
那么,我可以阻止它仅依赖 Lucene 索引吗?我希望它在索引上搜索,但不只返回索引的内容。或者将所有内容保存在索引中(从而以可搜索的方式进行)而不是手动进行 HQL 查询真的很方便吗?
grails - 可搜索索引在手动更新时被锁定 (LockObtainFailedException)
我们有一个在负载均衡器后面运行的 Grails 项目。服务器上运行着三个 Grails 应用程序实例(使用单独的 Tomcat 实例)。每个实例都有自己的可搜索索引。因为索引是分开的,所以自动更新不足以保持应用程序实例之间的索引一致。因此,我们禁用了可搜索的索引镜像,并且索引的更新是在计划的石英作业中手动完成的。根据我们的理解,应用程序的其他部分不应修改索引。
石英作业每分钟运行一次,它从数据库中检查应用程序更新了哪些行,并重新索引这些对象。该作业还检查同一个作业是否已经在运行,因此它不会执行任何并发索引。应用程序在启动后几个小时内运行良好,然后在作业开始时突然抛出 LockObtainFailedException:
22.10.2012 11:20:40 [xxxx.ReindexJob] 错误无法更新可搜索索引,类 org.compass.core.engine.SearchEngineException:无法打开子索引 [产品] 的编写器;嵌套异常是 org.apache.lucene.store.LockObtainFailedException:锁定获取超时:SimpleFSLock@/home/xxx/tomcat/searchable-index/index/product/lucene-a7bbc72a49512284f5ac54f5d7d32849-write.lock
根据上次执行作业的日志,重新索引已完成,没有任何错误,作业成功完成。尽管如此,这次re-index操作还是抛出了锁定异常,就好像之前的操作没有完成,锁还没有被释放一样。在应用程序重新启动之前,锁不会被释放。
我们尝试通过手动打开锁定的索引来解决问题,导致日志打印如下错误:
22.10.2012 11:21:30 [manager.IndexWritersManager] 错误非法状态,将索引编写器标记为打开,而另一个标记为打开子索引 [产品]
在此之后,工作似乎正常工作并且不会再次陷入锁定状态。但是,这会导致应用程序不断使用 100% 的 CPU 资源。以下是石英作业代码的缩短版本。
任何帮助将不胜感激,以解决问题,在此先感谢。
根据 JMX CPU 示例,Compass 似乎在幕后进行了一些调度。从 1 分钟的 CPU 样本来看,在比较正常和 100% CPU 实例时似乎几乎没有什么不同:
- org.apache.lucene.index.IndexWriter.doWait() 正在使用大部分 CPU 时间。
- Compass Scheduled Executor Thread 显示在线程列表中,这在正常情况下是看不到的。
- 一个 Compass Executor 线程正在执行 commitMerge,在正常情况下,这些线程都没有执行 commitMerge。
grails - Grails Searchable 插件和 GORM 编组
我有一对一的关系(用户域中的hasOne和UserInfo域中的belongsTo)。当 BootStrap 正在执行时,我得到一个异常:
org.compass.core.converter.ConversionException:试图为别名 [UserInfo] 编组一个空 id [id]
这行代码产生它: