问题标签 [compass-lucene]

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 回答
529 浏览

mysql - 尝试在 for 循环内连续将文档添加到 lucene 索引时引发异常

我正在使用“compass-2.2.0”在 MySql 数据库表中创建一个 lucene 索引。这是我索引文档的代码的一部分,在尝试在 for 循环内连续将文档添加到 lucene 索引时抛出异常。有什么办法可以克服这个错误吗?

我的托管服务器是基于 Wso2 Stratoes Tomcat 的服务器和 Wso2 Stratoes 数据服务服务器。我的程序在本地 tomcat/mySql 服务器上工作。

这是我关注的示例博客文章- http://mprabhat.wordpress.com/2012/08/13/create-lucene-index-in-database-using-jdbcdirectory/

这是我得到的新错误,我使用的服务器不允许创建临时文件。在尝试将内容写入数据库时​​,它会以某种方式创建临时文件。我在上面的循环中进行了调试,大约 5 次迭代它成功然后发生以下错误。任何解决方法来克服这个错误?

0 投票
1 回答
987 浏览

java - 使用标准分析器清理 Lucene 搜索词

我们正在从搜索词字符串中构建一个布尔查询来搜索我们的 Lucene 索引。我希望使用标准分析器来分析这些字符串,标准分析器是我们用于索引的分析器。例如,foo-bar 1-2-3应该分解为foo, bar1-2-3因为 Lucene 文档指出连字符会导致数字保持在一起,但单词会被标记化。做这个的最好方式是什么?

目前我正在通过 QueryParser 运行我的搜索词字符串。

这样做的问题是插入了引号。例如,foo-bar 1-2-3变成"foo bar", 1-2-3,它不会返回任何东西,因为 Lucene 会被标记foo-barfooand bar

我绝对不想通过删除引号来破解这种情况,replace因为我觉得我可能遗漏了一些东西或做错了一些事情。

0 投票
1 回答
307 浏览

lucene - 在数据库中存储 lucene 索引时出现异常

我正在使用 lucene 4.0.0 版和 compass 2.2.0 在 Mysql 中存储 lucene 索引。

我收到以下错误并坚持下去。

而且你能告诉我哪个会表现更好。将索引存储在 FS 或 DB 中?

0 投票
1 回答
252 浏览

grails - Lucene Grails Searchable plugin build index for part of the table

我有一个可搜索的域类映射到具有标志列的表。目前,当 Lucene 创建索引时,它会生成这样的查询(返回表中的所有数据):

是否可以仅为那些包含特定标志值的行构建索引,以便生成的查询如下所示:

0 投票
1 回答
339 浏览

grails - Grails 可搜索插件 - 过滤结果集

我目前正在使用 Lucene。我的要求就像 facebook 搜索框。用户搜索人和朋友。但在我的要求中,用户有隐私设置,如姓名、位置、电子邮件地址对所有人或只有朋友可见。他可以向朋友和社区的其他成员显示和隐藏这些字段。

我已经实现了基于姓名、位置和电子邮件地址的简单搜索。但现在我正在根据隐私设置修改搜索。

这是我的场景..

用户 A有隐私设置:
姓名只显示给朋友
电子邮件显示给每个人
位置不显示给任何人。

如果用户 X在搜索框中键入用户 A的位置,那么它不应该出现在结果中。但是如果用户 X 在搜索框中输入用户 A的名称,则应该显示它,因为用户 A没有限制名称,并且在隐私设置中对他的朋友可见。

你能指导我的方法吗?

如果我没有清楚地写下我的要求,请告诉我。

我分析了以下方法,
1- IndexSearcher 的解释方法(它会影响整体性能)
2- 探索过滤器但不能得到太多

我的方法:

根据名称
获取结果集 根据位置
获取结果集 根据电子邮件地址获取结果集

循环每 3 个结果集并应用与隐私设置相关的条件,并根据隐私设置排除项目。最后合并所有 3 个结果集。

如果有其他方法吗?请与我分享。谢谢。

0 投票
2 回答
266 浏览

lucene - Grails Searchable Plugin(Lucene) - 一对多查询

我正在使用圣杯的searchable plugin(0.6.4). 我需要根据隐私设置搜索会员。以下是数据库设计。会员有MemberProfile, and MemberProfile has PrivacySettings

一个成员个人资料的每个字段都有许多隐私设置。

只搜索那些在隐私设置表中的 fieldsSectionName 和 connectionLevel 中具有 display_name 的成员的查询将是什么。

我正在尝试这样的事情

0 投票
1 回答
962 浏览

mysql - Grails hibernate/Searchable 通过给出以下异常来停止服务器启动

我们在我们的 Grails 应用程序中使用 Grails 2.1.1 和 Searchable 插件 0.6.4,并在一些域上实现了可搜索,如下所示,所有映射。

使用正确的映射和约束成功保存数据。

当我们在具有关系的表用户中有下面的drowslike时,问题就开始了

用户 a1 -> UserEducations b1 -> 学校 d1

用户 a2 -> UserEducations b2 -> 学校 d1

或者

用户 a1 -> UserWorkings c1 -> 组织 e1

用户 a2 -> UserWorkings c2 -> 组织 e1

(我们不确定上述事实可能是由于大量数据而发生的问题。)

然后当我们尝试启动服务器时,我们收到以下异常并且服务器无法启动

我们尝试删除可搜索索引并重新启动,然后它也无法启动。

仅当我们截断与上述 5 个域对应的表时,服务器才会启动。

我们的问题类似于下面的帖子

http://grails.1312388.n4.nabble.com/hibernate-Searchable-failing-to-index-on-program-start-td4119566.html

我们已尽力解决问题,但没有运气。请帮助我们解决这个问题。

0 投票
1 回答
434 浏览

grails - Grails lucene 搜索花费了过多的时间

作为背景,我在我的应用程序中使用 Grails v2.2.1 和 Searchable 插件 (v0.6.4),尽管在配置 Lucene 方面我是新手。

日志显示搜索需要 26 毫秒,但罗盘事务大约需要 15 秒才能返回:

2013-04-23 00:40:34,269 DEBUG grails.plugin.searchable.internal. compass.search.DefaultSearchMethod - query: [+kind:band +name:snoop], [4] hits, took [26] millis

2013-04-23 00:40:49,965 DEBUG org.compass.core.transaction.LocalTransaction - Committing local transaction on thread [http-bio-8080-exec-10] Compass [1176020804] Session [2089649487]

与 Lucene 相比,这似乎是 Compass 的问题,因为查询执行速度很快,但 Compass 映射将我的 Java 进程固定在接近 100% CPU 并且挂起时间过长。

我索引了大约 3500 个域对象,我的域模型如下所示:我尝试仅索引字段名称和 id,但通过 Luke 看到它似乎映射了域中的所有内容。

我的控制器中的乐队搜索逻辑:

任何想法将不胜感激。这是我的一个自学项目,我真的很想以正确的方式进行搜索。:) 谢谢,凯文

0 投票
1 回答
265 浏览

grails - 投影 Grails 可搜索插件结果集

我对域类及其关联的域类有一个复杂的可搜索配置。当我搜索大约 200 个结果(最大:200)时,响应时间太长。

在结果集中,我为我的域类中的搜索指定了所有字段(简单或关联)。我只需要返回一个 id 列表并忽略 domain class 的其他字段。是否可以?我想这样做是为了加快搜索速度。此 id 列表将用于查询另一个 no-sql 数据库。似乎获取所有字段正在减慢我的搜索速度。

0 投票
1 回答
97 浏览

grails - Grails Searchable 插件添加到索引条件

我有域:

我想在搜索索引中只有地址为 !=null 的对象。可以通过配置实现吗?