elasticsearch怎么同時檢索單field多個值?
如果中英文混合,一般可以在映射中配置多字段,然后分別設置分詞器。比如在:的中文場景中使用中文分詞器,默認可以支持英文,比如:ikms:完全匹配gt拼音的第一個字母。gt拼音二進制分詞的缺點是會占用一些額外的索引空間。
學習人工智能AI需要哪些知識?
人工智能入門需要的知識包括:自然語言處理、機器學習、計算機視覺、知識表示、自動推理和機器人學。這些領域雖然側重點不同,但都需要一個重要的基礎,那就是數學和計算機基礎。
全文搜索引擎有那些?
全文搜索引擎包括:
1.全文搜索引擎
Lucene的開發語言是Java,也是Java家族中最著名的開源搜索引擎。在Java世界中,它已經是一個標準的全文搜索程序。它提供了完整的查詢引擎和索引引擎,沒有中文分詞引擎,需要自己實現。因此,有必要用Lucene構建一個搜索引擎。此外,它不支持實時搜索。不過linkedin和twitter已經改進了lucene的實時搜索,Lucene有一個移植版本叫做Lucene,理論上比Lucene快,因為它是用C編寫的.
官方主頁:
CLucene官方主頁:
2.獅身人面像
Sphinx是用C語言編寫的開源搜索引擎,也是目前主流的搜索引擎之一。在索引事件上比lucene快50%,但是索引文件比Lucene大一倍,所以Sphinx在索引上是用空間換事件的策略,在檢索速度上和Lucene相差不大,但是在檢索準確率上Lucene比Sphinx好。另外,Lucene在中文分詞引擎的加入難度上優于Sphinx,其中Sphinx支持實時搜索,使用起來相對簡單方便。
官方主頁:
3.夏皮安
Xapian是一個用c編寫的全文檢索程序,它的api和檢索原理在很多方面與lucene相似,可以看作是lucenesc中的一個空缺。
官方主頁:
4.上下真空濾器
Nutch是一個用java實現的開源web搜索引擎,包括爬蟲、索引引擎和查詢引擎,其中Nutch基于Lucene,Lucene為Nutch提供了一個用于文本索引和搜索的API。
你是否應該使用Lucene或Nutch應該是,如果你不不需要抓取數據,你應該使用Lucene。最常見的應用是您有數據源,需要為這些數據提供一個搜索頁面。在這種情況下,最好的方法是直接從數據庫中獲取數據,并用LuceneAPI構建一個索引。
官方主頁:
5.數據公園搜索
DataparkSearch是一個用C語言實現的開源搜索引擎,其中網頁排序基于神經網絡模型,支持下載HTTP、HTTPS、FTP、NNTP等網頁,包括索引引擎、搜索引擎和中文分詞引擎(這是唯一一個帶有中文分詞引擎的開源搜索引擎)。它可以單獨定制搜索結果,并有完整的日志記錄。
官方主頁:
6.澤泰爾
Zettair是一個基于JustinZobel的研究成果。它是用C語言實現的。JustinZobel在全文檢索領域非常有名,他是業界第一個系統提出倒排索引差分壓縮算法的人。倒排表的壓縮大大提高了檢索和加載的性能。與此同時,空間膨脹率也降低到了一個非常好的水平。因為Zettair起源于學術界,代碼是由RMIT大學的搜索引擎編寫的,所以它的代碼簡潔高效,是學習倒排索引經典算法的一個非常好的例子。支持linux、windows、macos等系統。
官方主頁:
7.因德里
Indri是一個用C語言和C語言編寫的全文檢索引擎系統。它是由麻省大學和卡內基梅隆大學聯合推出的開源項目。它的特點是跨平臺和API接口支持Java,PHP和c。
官方主頁:
8.一種活潑的小狗
Terrier是由格拉斯哥大學計算科學學院用java開發的全文檢索系統。
官方主頁:
9.加拉戈
Galago是一個用java語言編寫的關于文本搜索的工具集,包括索引引擎和查詢引擎,還包括一個叫Tu的工具。PleFlow的分布式計算框架(類似于google的MapReduce)。這個檢索系統支持多種Indri查詢語言。
官方主頁:
10.斑馬
Zebra是用C語言實現的檢索程序,其特點是支持大數據、EMAIL、XML、MARC等格式。
官方主頁:
11.索爾
Solr是一個用java開發的獨立的企業級搜索應用服務器,它提供了一個類似于Web-service的API接口。它是基于Lucene的全文檢索服務器,也是Lucene的變種。很多一線互聯網公司都在用Solr,這也是一個成熟的解決方案。
官方主頁:
12.彈性搜索
Elasticsearch是一個開源的分布式搜索引擎,用java語言開發,基于Lucene構建。它是為云計算設計的,可以實現實時搜索、穩定可靠。Elasticsearch的數據模型是JSON。
官方主頁:
13.呼
Whoosh是一個用純python編寫的開源搜索引擎。
官方主頁: