休止状態の検索クエリを固定値で制限する方法を考えています。たとえば、結果をコンピューターのみに制限する URL に値がある電気店に対してフリー テキスト検索を行っている場合です。または、別の例として、場所に基づいて検索を行うこともできます。
現在のコード
@Entity
@Indexed
public class Store {
@Field(index=Index.YES, analyze=Analyze.YES, store=Store.NO)
private String name;
@IndexedEmbedded
@OneToMany(mappedBy = "computer", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Computer> computers;
}
@Entity
public class Computer {
@Field
private String name;
@ContainedIn
@ManyToOne
@JoinColumn(name = "store_id", nullable = false)
private Store Store;
}
キーワード検索クエリ
FullTextSession fullTextSession = Search.getFullTextSession(sessionManager.getSession());
QueryBuilder queryBuilder = fullTextSession.getSearchFactory().buildQueryBuilder().forEntity(Store.class).get();
Query luceneQuery = queryBuilder.keyword().onFields("name").andField("computers.name").matching(keyword).createQuery();
org.hibernate.search.FullTextQuery fullTextQuery = fullTextSession.createFullTextQuery(luceneQuery, Computer.class);
これを機能させるために私が欠けているものを誰かが知っていますか?