Lucene中的索引是什么?

Lucene中的索引是什么?,lucene,indexing,Lucene,Indexing,Lucene中的索引是什么?它是如何工作的 我在网上和谷歌上看过一些文章,但我不能完全理解索引、文档等的概念 如果有人能简单地解释术语索引和索引,请提供帮助 谢谢 假设您有一大堆信息希望可以搜索。例如,一些HTML文件、一些PDF和存储在数据库中的一些信息。当用户进行搜索时,您可以编写搜索引擎,搜索这些信息并返回匹配的结果。但是,对于大型数据集来说,这通常太慢了 因此,在运行我们的应用程序之前,我们创建了需要搜索的信息的索引。索引包含我们希望包含在搜索中的每一条信息的摘要。在Lucene中,信息

Lucene中的索引是什么?它是如何工作的

我在网上和谷歌上看过一些文章,但我不能完全理解索引、文档等的概念

如果有人能简单地解释术语索引和索引,请提供帮助


谢谢

假设您有一大堆信息希望可以搜索。例如,一些HTML文件、一些PDF和存储在数据库中的一些信息。当用户进行搜索时,您可以编写搜索引擎,搜索这些信息并返回匹配的结果。但是,对于大型数据集来说,这通常太慢了

因此,在运行我们的应用程序之前,我们创建了需要搜索的信息的索引。索引包含我们希望包含在搜索中的每一条信息的摘要。在Lucene中,信息片段的摘要称为文档。文档包含多个字段

Document doc = new Document()
doc.add(new Field("body", "This is my Test document", Field.Store.YES, Field.Index.TOKENIZED)
doc.add(new Field("title", "Test document", Field.Store.YES, Field.Index.UNTOKENIZED)
创建索引时,您可以根据希望搜索的内容决定要包含哪些字段。例如,可以包括标题、id、类别字符串等。定义字段后,在索引中为每个信息项(html、pdf、数据库条目等)创建一个文档。此过程称为索引

Document doc = new Document()
doc.add(new Field("body", "This is my Test document", Field.Store.YES, Field.Index.TOKENIZED)
doc.add(new Field("title", "Test document", Field.Store.YES, Field.Index.UNTOKENIZED)
搜索引擎现在可以使用索引来搜索内容。该索引针对我们所做的典型搜索进行了高度优化。您可以在特定字段中搜索信息并执行布尔逻辑。您可以搜索精确匹配或模糊匹配。搜索引擎将对索引中的文档进行加权/打分,首先返回最相关的文档


希望这在高水平上有所帮助

Lucene创建了一个反向全文索引,它将文档拆分为单词,为每个单词建立索引

For Instance:
Document 1: "Apache Lucene Java"
Document 2: "Java Library"

Inverted Index:
Tokens       Document Location
apache      1
Library     2
Java        1, 2
Lucene      1

让展开更进一步,现在让我们考虑<强>文档>两个<强>字段< /强>。strong>正文标题

Document doc = new Document()
doc.add(new Field("body", "This is my Test document", Field.Store.YES, Field.Index.TOKENIZED)
doc.add(new Field("title", "Test document", Field.Store.YES, Field.Index.UNTOKENIZED)
您可以灵活地标记或不标记字段

Luncene有各种分析仪,使用StandardAnalyzer

Analyzer analyzer = new StandardAnalyzer()
上述文档将标记为“我的”、“测试”、“文档”、“测试文档”