【问题标题】:Solr search with query string @ returns all the records使用查询字符串 @ 的 Solr 搜索返回所有记录
【发布时间】:2019-12-20 11:03:44
【问题描述】:

我在搜索“@”时遇到 solr 搜索的问题,它返回所有记录。如何解决这种情况,如果没有带有 @ 符号的记录,它也会返回所有记录。

下面是我的网址

http://localhost:8983/solr/oneteam/select?q=caption:/.@./ 或描述:/.@./

谁能帮我解决这个问题。

感谢您的建议。

【问题讨论】:

  • 附加到您要搜索的字段的分析器是什么?请记住,您可能有一个在@ 上拆分的标记器,这意味着您正在有效地搜索任何与任何匹配的东西 (.)。您可能需要一个 string 字段来使任何正则表达式搜索有用。
  • 请按以下方式查找。

标签: apache solr


【解决方案1】:

字段类型text_generaluses the StandardTokenizer的默认定义附加的分析器和过滤器序列:

“@”字符是一组标记拆分标点符号之一,因此电子邮件地址不会保留为单个标记。

这意味着不会保留@ 符号,因为它们用于拆分文本。如果您需要保留 @ 来搜索它,请改用 string 字段类型(如果这是经常执行的搜索,您可能希望将其压缩为仅包含 @ 987654327@ 如果文档与搜索匹配(即字段包含@)以避免必须针对索引中字段的所有值执行正则表达式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-07-04
    • 1970-01-01
    • 2023-03-08
    • 2020-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多