elasticsearch - ElasticSearch用来搜索代码的分析器

标签 elasticsearch

我正在写一个用于搜索代码的搜索工具,但是我很难找到合适的分析器来使用。我曾尝试做一个空格分析器,但最终会遇到问题,其中可能包含dbo.My_Procedure,搜索“my_procedure”应该与搜索“.My_Procedure”一样有效。我的想法是分割特殊字符,但也将它们存储到自己的 token 中。但是,如果您将my_procedure编写为搜索,则除非在文件中用引号引起来,否则它将只在文件中的任意位置查找我,_和过程(即使对于用户而言,它看起来就像一个字)。人们采取了什么方法来分析代码?

最佳答案

如果您的代码使用Java,则根据Java命名约定,您的方法和类应为驼峰式,因此您不应碰到诸如my_search之类的名称,而应遇到mySearch之类的名称。

如果是这样,您可以使用(默认)standard analyzer,它使用单词边界作为分隔符。

就是说,如果没有办法解决,并且您必须在标记化部分考虑诸如my_search之类的名称,则可以实现自己的custom analyzer

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

关于elasticsearch - ElasticSearch用来搜索代码的分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30219297/

相关文章:

elasticsearch - 如何清除elasticsearch的cat-indices页面中的docs.deleted?

sorting - Elasticsearch 中的耦合

java - 如何在没有任何索引的情况下在 Elasticsearch 中存储一些位?

ruby-on-rails - Elasticsearch 在测试套件中因 HTTP 不堪重负时不同步

hadoop - Ambari Hadoop/Spark 和 Elasticsearch SSL 集成

elasticsearch - 无法从 org.elasticsearch.common.bytes.BytesArray@0 派生 xcontent

configuration - 本地Kibana未连接到本地Elasticsearch Server(StreamCorruptedException?)

mysql - 从mysql解析数据到elasticsearch时会报错

spring-boot - spring-data-elasticsearch实体删除不推荐使用的类型

elasticsearch - 如何合并Elasticsearch Rails gem的两个或多个结果?