使用 Lucene/swish-e 的自定义代码浏览器

发布于 2024-09-08 17:03:30 字数 232 浏览 6 评论 0原文

我正在开发一个 C++ 项目,该项目拥有庞大的代码库和多个组件。我想为其创建一个丰富的代码浏览器,这将提供类似视觉工作室的体验。我正在考虑使用 Lucene 或 Swish-e 作为后端文本索引器的 Adob​​e AIR 应用程序。我从未使用过这两者中的任何一个。如果您使用过其中之一或两者,请问Lucene/Swish-e是否适合此类应用?我可以对其进行配置以使其支持 C++、Flex 等语言吗?有没有针对这个问题的现有开源解决方案我可以看看?

I am working on a C++ project which has a huge code base and multiple components. I want to create a rich code browser for it which will give a visual studio like experience. I am thinking of an Adobe AIR app with Lucene or Swish-e as the backend text indexer. I have never used either of the two. If you have used one or both of them, can you please tell me if Lucene/Swish-e is suitable for this kind of application? Can I configure it to make it language aware for C++, Flex, etc? Are there existing open source solutions for this problem I can take a look at?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

稚气少女 2024-09-15 17:03:30

《Lucene 实践》第二版。包含有关名为 krugle 的产品的一章,该产品使用 Lucene 搜索源代码。我从来没有使用过 swish-e,所以我无法比较它们,但是那本书谈到了使用 Lucene 的好处和坏处。您也可以在此处尝试搜索,了解其价值。

总结他们的章节:

  • 优点:Lucene 规模非常大,而且速度非常快。本质上,一旦有了索引,一切就都是肉汁了。
  • 缺点:标准分析器会丢弃“if”和“for”等单词以及“{”等标点符号,这些在源代码搜索中非常重要。此外,代码不容易标记化(例如“GetDatabaseInstance”应该标记为三个单词,而不是一个)。所以他们不得不编写很多自己的分析器。

Lucene in Action 2nd ed. contains a chapter on a product called krugle which uses Lucene for searching source code. I have never used swish-e, so I can't compare them, but that book talks about the benefits and detriments of using Lucene. You can also try their search here, for what that's worth.

To summarize their chapter:

  • Pros: Lucene scales very big, and is very fast. Essentially, once you have the index, it's all gravy.
  • Cons: The standard analyzers throw out words like "if" and "for" and punctuation marks like "{" which are important in source code searching. Also code doesn't tokenize easily (e.g. "GetDatabaseInstance" should tokenize to three words, not one). So they had to write a lot of their own analyzers.
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文