【问题标题】:ElasticSearch What analyzer to use for searching codeElasticSearch 使用什么分析器来搜索代码
【发布时间】:2015-05-13 23:40:25
【问题描述】:

我正在编写一个用于搜索代码的搜索工具,但我很难找到合适的分析器来使用。我试过做一个空白分析器,但你最终会遇到dbo.My_Procedure 的问题,搜索“my_procedure”应该和搜索“.My_Procedure”一样有效。我的想法是拆分特殊字符,但也将它们存储到自己的令牌中。但是,如果您将 my_procedure 编写为搜索,它只会在文件中的任何位置查找 my、_ 和过程,除非您将其括在引号中(即使对用户来说它看起来只是一个单词)。人们用什么方法来分析代码?

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    如果您的代码是用 Java 编写的,根据 Java 命名约定,您的方法和类应该是驼峰式的,因此您不应该遇到像 my_search 这样的名称,而是使用 mySearch

    如果是这种情况 - 您可以使用(默认)standard analyzer,它使用单词边界作为分割的分隔符。

    也就是说,如果没有办法绕过它并且您必须在标记化部分考虑像 my_search 这样的名称,您可以实现自己的 custom analyzer

    This answer 显示了设置自定义分析器的示例。

    【讨论】:

      猜你喜欢
      • 2014-02-15
      • 2019-11-10
      • 2023-03-25
      • 2014-02-25
      • 1970-01-01
      • 1970-01-01
      • 2019-09-05
      • 2018-11-09
      • 1970-01-01
      相关资源
      最近更新 更多