【问题标题】:searchable plugin ignores objects id可搜索插件忽略对象 ID
【发布时间】:2010-08-09 03:53:34
【问题描述】:

我正在使用 0.5.5.1 grails 可搜索插件。搜索适用于我的大部分对象和字段。但是,我有一个带有 String id 的类,它由一个数字破折号组成,如 1-1、1-2、.. 等等。我无法通过 id 搜索此对象。我的猜测是由于它的破折号,它可能会被可搜索的分析器忽略?不确定.. 有什么想法、建议吗?

【问题讨论】:

    标签: grails lucene


    【解决方案1】:

    我首先建议您下载 Luke http://code.google.com/p/luke/ 并查看索引中的具体内容。

    默认索引位置是

    "${user.home}/.grails/projects/${app.name}/searchable-index/${grails.env}"
    

    根据您用于创建索引的分析器创建索引时,很可能会删除破折号。

    我也相信您在执行索引中包含的破折号查询时可能需要进行一些字符转义

    【讨论】:

    • 感谢您的回复。我下载了卢克,我的索引确实显示用 1-1 正确索引的 id。我正在尝试逃避-,现在似乎不起作用...仍在测试
    • 查询是什么样的?我通常做的是先让查询在 Luke 中工作,然后返回我的代码并纠正问题。
    • 我怀疑您使用的是 StandardAnalyzer,如果您使用 WhitespaceAnalyzer 并创建您的查询,例如带有反斜杠的 stop\-gap,它将保留在查询中
    • 在 Luke 中直接运行查询:1-1 使用:org.apache.lucene.analysis.standard.StandardAnalyzer 或 org.apache.lucene.analysis.WhitespaceAnalyzer 返回结果,但不使用 org.apache。 lucene.analysis.SimpleAnalyzer... 很奇怪,因为我相信默认情况下 Grails 插件也使用标准
    • 可以在配置文件Searchable.groovy中更改分析器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-03
    • 2016-05-25
    • 1970-01-01
    相关资源
    最近更新 更多