倒排索引并检索 java
时间: 2023-10-16 18:29:45 浏览: 124
倒排索引是一种数据结构,用于将文档中的单词映射到它们出现的文档中。在检索时,通过查询单词,可快速找到包含该单词的文档列表。
以下是一个简单的 Java 实现:
```java
import java.util.*;
public class InvertedIndex {
private Map<String, List<Integer>> index;
public InvertedIndex() {
index = new HashMap<>();
}
public void add(String word, int docId) {
if (!index.containsKey(word)) {
index.put(word, new ArrayList<>());
}
index.get(word).add(docId);
}
public List<Integer> search(String word) {
return index.getOrDefault(word, new ArrayList<>());
}
public static void main(String[] args) {
InvertedIndex index = new InvertedIndex();
index.add("apple", 1);
index.add("banana", 1);
index.add("apple", 2);
index.add("orange", 2);
System.out.println(index.search("apple")); // [1, 2]
System.out.println(index.search("banana")); // [1]
System.out.println(index.search("kiwi")); // []
}
}
```
在这个例子中,我们创建了一个 `InvertedIndex` 类,它包含一个 `Map`,将单词字符串映射到包含文档 ID 的列表。`add` 方法将单词和文档 ID 添加到索引中,`search` 方法查询单词并返回包含该单词的文档 ID 列表。
在 `main` 方法中,我们添加了一些单词和文档 ID,并执行了一些查询以检索它们。
阅读全文