我建立一个"书搜索"API使用分类:设.我需要索引书的名称,提交人和图书分类领域分类:设指标。

一个单一的书可以属于多种不同书的类别...例如:

BookName1--小说,幽默,哲学。BookName1--是小说,科学。BookName1--的幽默感,业务。BookName4的幽默 等。。...

用户应当能够搜索所有的书籍,在一个特定的类别说"homour".

鉴于这种情况,我怎么引述领域和建立查询分类:设在?

有帮助吗?

解决方案

你可以有一个领域分类:设文件的发生多次。创建文档,加值的名称和提交人,然后做同样的每个类别

  • 创造新的分类:设文件
  • 增加名字和价值
  • 添加提交人领域和价值
  • 为每个类别:
    • 添加类别领域和价值
  • 添加文件的索引

当你搜索的索引用一个类别,它将返回的所有文件,有一个分类领域的价值你之后。该类别应该是一个"关键字"的领域。

我写它的英文,因为特定的代码是稍微不同的每分类:设的版本。

其他提示

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

然后你可以搜索:

stock market AND category:(+"business")

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

stock market AND category:(+"business" +"philosophy")

我会使用 Solr - 它建立在Lucene上并由ASF管理,但是比Lucene更容易使用,特别是对于新手来说。

如果提供Lucene的几乎所有主要功能(当然,您所描述的项目所需的一切),以及快照,复制,模式等额外的东西......

在Solr中,您只需在 schema.xml 中定义要为此类索引的字段:

<field name="book_id" type="string" indexed="true" stored="true" required="true" multiValued='false'/>
<field name="book_name" type="text" indexed="true" stored="true" required="true" multiValued='false' />
<field name="book_authors" type="text" indexed="true" stored="true" required="true" multiValued='true' />
<field name="book_categories" type="textTight" indexed="true" stored="true" required="true" multiValued='true' />

请注意, multiValued ='true'属性可让您有效地将数组或列表传递给此字段,Solr可以很好地对其进行拆分和索引。

一旦你有了这个,启动Solr并且你可以询问诸如“ book_authors:Hemingway ”之类的查询。或“ book_categories:Romance book_categories:Mills &quot;。

有几个预编写和配置的查询处理程序可以解析复杂查询(模糊匹配,布尔运算,评分提升......等),并且当Solr的API通过HTTP公开时,所有这些都被包装由许多客户端库,因此您不需要自己处理制作查询的低级细节。

有很多很棒 文档在他们的网站上开始。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top