lucene 搜索_使用Lucene的搜索服务器搜索Jira问题
lucene 搜索
您可能還記得我的第一篇博客文章 ,該文章描述了Lucene開發人員如何使用Lucene搜索應用程序查找我們的Jira問題來食用我們自己的狗糧。
該應用程序已成為許多現代Lucene功能的強大展示,例如側向鉆取和動態范圍刻面, 基于中綴匹配的新建議 , 張貼熒光筆 ,塊聯接查詢,因此您可以跳轉到與您的匹配的特定問題注釋搜索,近實時索引和搜索等。每當新用戶向我詢問Lucene的功能時,我都會將他們指向該應用程序,以便他們可以自己查看。
最近,我取得了一些進一步的進展,因此我想進行更新。
簡單的基于Netty的Lucene服務器的源代碼現在可以在此subversion分支上使用 (有關詳細信息,請參閱LUCENE-5376 )。 我一直在逐步增加其他Lucene模塊的覆蓋范圍,包括構面,建議程序,分析,queryparsers,突出顯示,分組,聯接和表達式。 當然還有正常的索引和搜索! 還有許多工作要做(有很多未提交的內容),此處的目標不是構建功能豐富的搜索服務器,而是演示如何在服務器上下文中使用最少的“瘦服務器”附加源代碼使用Lucene當前的模塊。
另外,為了測試此基于Lucene的新服務器并完成“狗食”,我構建了一個簡單的Jira搜索應用程序插件,以幫助我們在此處找到Jira問題。 該應用程序具有各種Python工具,可使用Jira的REST API和作為Python WSGI應用程序運行的用戶界面層提取和索引Jira問題,以將請求發送到服務器并將響應呈現回用戶。 此Jira搜索應用程序的目標是使它易于指向任何Jira實例/項目,并實現對所有問題的全面搜索。
我只是對生產站點進行了進一步的更改:
- 我將Jira搜索應用程序升級到當前服務器分支(以前它在我的私有fork上運行)。
- 我將所有分析組件都切換到了Lucene的分析工廠。 這些工廠使用Java的SPI(服務提供商接口),以便服務器可以訪問類路徑中的任何字符過濾器,令牌化器和令牌過濾器。 這在構建服務器時非常有幫助,因為這意味著您不需要任何特殊的代碼即可處理Lucene如今提供的大量分析組件。 一切都簡單地通過了工廠(工廠知道如何解析自己的論點)。
- 我已經添加了Tika項目,因此您現在也可以找到Tika問題。 添加起來非常簡單,并且似乎可以正常工作!
- 我插入了WordDelimiterFilter以便拆分CamelCaseTokens。 例如,嘗試搜索中綴并記下高亮。 正如Rober Muir提醒我的那樣, WordDelimiterFilter會破壞偏移量,在某些情況下,它將使突出顯示混亂,因此,我將嘗試設置我已經在使用的ICUTokenizer來進行拆分。
- 當您進行文本搜索時,我默認切換到Lucene的新表達式模塊來進行相關性+新近度排序,這很有用,因為大多數時候我們都在尋找最近接觸的問題。 以前,我使用自定義FieldComparator來實現相同的功能,但是表達式更加緊湊和強大,可以刪除該自定義FieldComparator 。
- 我切換到的建議近乎實時的建設,使用AnalyzingInfixSuggester 。 以前,我每隔五分鐘就完全重建一次建議程序,所以這節省了很多CPU,因為現在我只是在問題出現時添加新的Jira問題并刷新建議程序。 這也意味著從添加索引到建議索引之間的延遲要短得多。 有關詳細信息,請參見LUCENE-5477 。
- 我現在每天commit一次。 以前,我從不承諾,只是依靠近實時搜索。 這工作得很好,除非當我需要關閉服務器(例如,推出新更改)時,它需要完全重新索引,這是非常快的,但是對于那些在搜索過程中偶然進行搜索的用戶來說,體驗很差。 現在,當我啟動服務器時,它又回到了最后一次提交,然后近實時索引Swift趕上了自最后一次提交以來發生的任何已更改問題。
- 各種小問題,例如重命名Jira問題時的正確處理(Jira REST API很難發現它!); 更好的生產推動自動化; 升級到引導 UI庫的更新版本。
此Jira搜索應用程序仍需進行大量改進。 對于具有許多可能的向下鉆取值的字段,我想使用一個簡單的建議程序,以便用戶可以快速向下鉆取。 我想修復建議程序,以根據項目過濾建議。 例如,如果您深入研究了提卡問題,那么當您輸入新搜索時,您應該只會看到建議的提卡問題。 為此,我們需要使AnalzyingInfixSuggester上下文感知 。 我還想為所有方面字段提供更緊湊的UI; 也許我需要在“更多”下隱藏不常用的構面字段...
翻譯自: https://www.javacodegeeks.com/2014/03/using-lucenes-search-server-to-search-jira-issues.html
lucene 搜索
總結
以上是生活随笔為你收集整理的lucene 搜索_使用Lucene的搜索服务器搜索Jira问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么么使用悟空(怎么么使用ddos)
- 下一篇: gdb 扩展 默认参数_默认方法一种扩展