问题标签 [searchable]

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.

0 投票
1 回答
931 浏览

plugins - 如何将 Grails Searchable 插件映射到超过 2 个域对象?

我在我的 Grails 应用程序中使用 Searchable 插件,但在返回有效搜索结果时无法让它映射超过 2 个域对象。我查看了可搜索插件文档,但找不到我的问题的答案。这是我拥有的域的一个非常基本的示例:

最终,我想要做的是能够通过搜索文章的标题、正文和相关标签来找到文章。标题和标签也将得到提升。

映射这些类以满足所需结果的正确方法是什么?

0 投票
3 回答
4442 浏览

android - 一个 AndroidManifest.xml 中的两个 searchable.xml 活动

我有一个 Android 应用程序,它有一些不同的活动,用于浏览从 RSS 下载的文章和图像。

我希望能够使用文件将搜索按钮连接到搜索对话框searchable.xml。我已经设法通过一次搜索来做到这一点,使用:

并且在<application />

我现在可以从任何活动启动搜索对话框,它会启动SearchResultsActivity.

我现在希望能够在用户是 a 时搜索图像ImageListActivity,使用 a searchable_images.xml,并在其他任何地方使用默认值。

我有一个SearchResultsImageActivity包含以下元数据元素,并在ImageListActivity.

按 中的搜索按钮时ImageListActivity,我会从 中获取默认搜索searchable_articles.xml

如果我将 更改default_searchableSearchResultsImageActivity,则始终启动图像搜索,并且永远不会启动文章搜索。

如果我default_searchable完全删除元数据元素,并仅添加searchable元数据选定的活动,则不会启动搜索。

我很确定这应该是可能的,但我不知道我做错了什么。

0 投票
2 回答
820 浏览

java - 如何使用 Solr 或 Searchable 搜索域对象和它们指向的物理文件

我有一个数字图书馆系统,我在其中存储元数据和数据库中物理文件的路径。文件可以是任何内容:纯文本、Word、PDF、MP3、JPEG、MP4...

如何为我的域对象和物理文件(或文件的某些文本提取)提供全文搜索。

将文档文本存储在域对象中是我唯一的选择吗?无论搜索结果来自域对象还是物理文档,我都需要能够检索域对象列表。当然,使用文件路径可能存在连接,我实际上将每个文档放在由 GUID 命名的文件夹中,所以连接就在那里。

我需要在 Grails 中执行此操作,最好使用 solr 或可搜索插件,但 Java 解决方案会有所帮助。

0 投票
1 回答
1568 浏览

plugins - Grails 可搜索插件

我的应用程序使用Grails可搜索插件,在下面使用Compass

开始索引的表大约为 36 MB,并且正在构建大约 350 MB 的索引。这在大多数人的书中都很小。

如果我们删除索引并启动 Grails 应用程序,索引文件会按预期重建,但是在运行大约一天后,我们发现了这个错误。我们在TellMeEntity实例上调用“reindex”,因为它们被保存以确保索引被更新。

异常 org.compass.core.engine.SearchEngineException:无法删除别名 [TellMeEntity] 和 ids [[stored/uncompressed,indexed,omitNorms,omitTf]];嵌套异常是 java.io.FileNotFoundException: /var/www/web17/log/mne/index/tellmeentity/segments_2 (No such file or directory) at org.compass.core.lucene.engine.transaction.readcommitted.ReadCommittedTransaction(doDelete :348)

显然,一旦发生此错误,索引就不会更新,并且搜索不适用于新输入的数据。

我们检查了磁盘空间等简单的东西。“segments_2”不存在,但我希望 Compass 自己创建它。

grails-app/conf/Searchable.groovy文件中:

……

……

在我的代码中:

……

……

我目前的经验是,这段代码可以运行大约 24 小时,但随后开始出现问题。我们每天产生大约 3000 个新条目,这听起来并不高,所以我认为这与数量无关。

如何解决这个问题?

0 投票
2 回答
419 浏览

grails - 在 Grails Searchable 插件中使用 mirrorChanges = true 时是否需要 bulkIndexOnStartup?

mirrorChanges 选项将镜像通过 GORM/Hibernate 所做的所有更改,所以如果我没有对数据库进行任何外部更改,那么是否需要 bulkIndexOnStartup?

问题是我们的数据集非常大(>1M 行),批量索引器可能需要 30 多分钟。

当设置为“fork”时,如果通过 GORM 进行任何更改,lucene 将崩溃,因为 lucene 不是线程安全的,并且 GORM 事务将在分叉的批量索引线程运行时尝试更新索引。

当设置为 true 时,应用程序将在 30 多分钟内完成初始化。

0 投票
1 回答
202 浏览

silverlight - 完整 Silverlight 网站内容的可搜索性

一个完整的 silverlight 网站内容是否可以像 HTML 网站一样被任何浏览器(如 google/yahoo)搜索?

谢谢你

0 投票
1 回答
1104 浏览

cakephp - 让 CakePHP 的可搜索行为结果包含更深层次的关联

我正在尝试使用 CakePHP 1.3.5 的可搜索行为和可包含行为来返回指定模型关联模型(文章属于用户)的搜索结果。

暂时忽略可搜索行为,以下调用find()

执行此 SQL 查询:

并返回以下数组:


这正是预期的结果。但是,以下对search()的调用:

执行此 SQL 查询:

并返回这个数组:


查看 search() 方法,它正在返回$this->SearchIndex->find('all', $findOptions);. $findOptions包含以下内容:

关联不会一路丢失,因为在 SearchableBehavior$this->SearchIndex->Article->belongsTo['User']内部,在 search() 方法内部调用 find() 之前和之后立即存在且完整无缺。

对于以下所有'contain' 值,对 search() 的调用返回完全相同的内容:

难道我做错了什么?我想我使用的格式与 CakePHP 文档中指示的格式相同,而且我还没有在网上找到任何建议您必须做一些特殊的事情才能获得包含相关数据的搜索结果。

我知道我可以通过对 find() 的额外调用来查找用户轻松地实现我想要的结果,但我希望让可包含的行为像预期的那样工作,并减少不必要的额外数据库查询。

0 投票
0 回答
130 浏览

spring - SpringSyncTransaction 与 Grails 可搜索

我正在尝试将 SpringSyncTransaction 与 Grails Searchable 插件一起使用,但无法按照建议在 LocalCompassBean 上设置 transactionManager。Searchable 似乎不使用 LocalCompassBean。

这个问题源于想要批处理 DomainClass.save() 调用以减少 lucene 索引上的磁盘 I/O。

到目前为止,我一直在使用 LocalTransactionFactory 将 spring 事务嵌套在 compass 事务中。这引起了问题,理想情况下,这两个事务将被同步。

任何建议,将不胜感激。

http://www.compass-project.org/docs/2.1.0/reference/html/spring-transaction.html

0 投票
1 回答
3482 浏览

android - android可搜索无法打开

嗨,我试图在我的应用程序中使用可搜索的活动,但是当按下搜索按钮时没有任何反应

AndroidManifest.xml

Searchable.xml (res/xml/searchable.xml)

Searchable.java (src/com/test/test/Searchable.java)

TIA,

ng93

0 投票
1 回答
676 浏览

datetime - 使 joda.DateTime 成为 grails 中的可搜索属性

我在我的 grails 项目中使用了 joda 时间库。我已经安装了可搜索插件。我有几个域,但现在最重要的是:

但是在初始化时我遇到以下错误:

无法映射 [Entry.dateCreated]。它似乎没有合适的“可搜索属性”(通常是简单的类型,如字符串、日期、数字等)、“可搜索引用”(通常是另一个域类)或“可搜索组件”(通常是另一个定义为组件的域类,使用“嵌入式”声明)。它是用'def'定义的派生属性(没有等效字段的getter方法)吗?尝试使用更具体的返回类型定义它

我的问题:是否可以在 grails 中使 dateCreated 和/或 lastUpdated 属性可搜索?如果可能,如何做到这一点?

谢谢。


编辑

如果我要在我的 config.groovy 中定义一个自定义转换器,如下所示:

地图 compassSettings = ['compass.converter. funkyConverter.type':'com.acme.compass.converter.FunkyConverter']

那么 FunkyConverter 类中定义了什么?