gpt4 book ai didi

java - 在 Lucene 中查询

转载 作者:行者123 更新时间:2023-11-30 07:39:13 25 4
gpt4 key购买 nike

表“testtable”的结构是

  1. id int 主键

  2. productid 整数

  3. intattributeid

  4. 值 varchar(250)

其中 productid 是产品的唯一 ID,attributeid 是产品属性的唯一标识,例如尺寸、质量、高度、颜色“值”是属性的值

我必须过滤一个结果。我通过这个查询实现了要求。但我无法在查询中进行。

select a.* from dbo.testtable a
where a.attributeId=10 and a.[Value]='Romance'
and productId in
(
select productId
from
dbo.testtable where attributeId =7 and [Value]='Hindi'
)

需要帮助来构建这个查询..

最佳答案

我认为您必须分两步完成此操作:

第 1 步:提取产品 ID

BooleanQuery query = new BooleanQuery();

query.add(new TermQuery("attributeId", 7), BooleanClause.Occur.MUST);
query.add(new TermQuery("value", "hindi"), BooleanClause.Occur.MUST);
TopDocs docs = searcher.search(query, null, searchLimit);

然后您需要从文档中提取 productId

第二步:运行查询

BooleanQuery query = new BooleanQuery();

query.add(new TermQuery("attributeId", 10), BooleanClause.Occur.MUST);
query.add(new TermQuery("value", "Romance"), BooleanClause.Occur.MUST);

// build "IN" clause
BooleanQuery pidQuery = new BooleanQuery();
for( long productId : productIds ){
pidQuery.add(new TermQuery("productId", productId), BooleanClause.Occur.SHOULD);
}
query.add(pidQuery, BooleanClause.Occur.MUST);
TopDocs docs = searcher.search(query, null, searchLimit);

关于java - 在 Lucene 中查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/999936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com