0

这是我第一次使用 Lucene,我有一个这样的文本文件:

id,name,address,hobby
1,namm1,address1,football
2,namm2,address2,football
3,namm3,address3,football
4,namm4,address4,football
5,namm5,address5,football
6,namm6,address6,basketball
7,namm7,address7,basketball
8,namm8,address1,football
9,namm9,address8,swimming
...

上面的文件是一个包含 1,000,000 行的文本文件。现在我想从文件中找到地址为address1,爱好为football的记录,然后将记录放入另一个文件中,如下所示:

1,namm1,address1,football
8,namm8,address1,football
...

第一个文件非常大,所以一个接一个的查找记录会很慢。我想用 Lucene 为第一个文件建立一个索引(根据地址和爱好)。然后我可以快速找到地址为address1,爱好为的记录,并将其football放入一个新文件中。我从来没有用 Lucene 编程过。谁能给我一个类似的例子?

4

2 回答 2

0

I don't think he needs to write an analyzer at all, he can just use java code to parse each line an put each value in the appropriate field, using one of the many built in analyzers

于 2012-07-01T21:06:59.610 回答
0

这很简单。当您使用 Lucene 索引文件时,您可以定义自己的“分析器”。简而言之,分析器从源中提取信息并将其放入 lucene“文档”的“字段”中。

当您搜索某些内容时,您可以定义 Lucene 应该考虑哪些字段。

因此,您的解决方案是编写一个分析器,将每一列放入一个字段中。在查询中使用MultiFieldQueryParserand 指定字段名称。对于您的示例,查询将是

address:address1 hobby:football
于 2012-06-30T19:51:47.303 回答