次のドキュメントの場合(すべてのドキュメントで1つのフィールドを想定します):
1- ABCD
2-AB
3-CDAB
(ADは別個の用語です)
ドキュメント1と2にのみ一致するクエリ「AB」を作成したいと思います。特別な「フィールドの始まり」トークンを挿入して支援できることはわかっていますが、それは避けたいと思います(すべてのデータのインデックスを再作成する必要があります)。 、そしてまた少し醜いです)。
どうすればそれを達成できますか?
次のドキュメントの場合(すべてのドキュメントで1つのフィールドを想定します):
1- ABCD
2-AB
3-CDAB
(ADは別個の用語です)
ドキュメント1と2にのみ一致するクエリ「AB」を作成したいと思います。特別な「フィールドの始まり」トークンを挿入して支援できることはわかっていますが、それは避けたいと思います(すべてのデータのインデックスを再作成する必要があります)。 、そしてまた少し醜いです)。
どうすればそれを達成できますか?
理解した。秘訣は、 SpanNearQueryをSpanFirstQueryと組み合わせることです。
SpanNearQuery spanNearQuery = new SpanNearQuery(new[] { new SpanTermQuery(new Term(field, "A")), new SpanTermQuery(new Term(field,"B")) },0, true);
SpanFirstQuery spanFirstQuery = new SpanFirstQuery(spanNearQuery, 2);