具有多个不同值的字段

use*_*907 24 lucene

我正在使用Lucene构建"图书搜索"API.我需要索引Lucene索引中的Book Name,Author和Book category字段.

一本书可以归入多个不同的书籍类别......例如:

BookName1 - 小说,幽默,哲学.BookName1 - 小说,科学.BookName1 - 哼哼,生意.BookName4-幽默等等.....

用户应该能够搜索特定类别下的所有书籍"homour".

鉴于这种情况,我如何索引上面的字段并在lucene中构建查询?

Sal*_*ire 32

您可以多次出现Lucene文档的字段.创建文档,添加名称和作者的值,然后对每个类别执行相同的操作

  • 创建新的lucene文档
  • 添加名称字段和值
  • 添加作者字段和值
  • 对于每个类别:
    • 添加类别字段和值
  • 将文档添加到索引

当您在索引中搜索某个类别时,它将返回所有具有您所追求的值的类别字段的文档.该类别应为"关键字"字段.

我用英文写的,因为每个lucene版本的具体代码略有不同.

  • 不,你只有一份文件.它不像您管理架构和索引的数据库.你必须放松并让Lucene处理索引,这真的很聪明. (3认同)
  • 如何测试是否保存了所有类别?当我编写查询时,我只获得为文档返回的第一个类别. (2认同)

zeh*_*rer 5

您可以创建一个简单的"类别"字段,在该字段中列出按空格分隔的书籍的所有分类.

然后你可以搜索类似的东西:

stock market AND category:(+"business")
Run Code Online (Sandbox Code Playgroud)

或者,如果您想要搜索多个类别

stock market AND category:(+"business" +"philosophy")
Run Code Online (Sandbox Code Playgroud)