Hi @gladmortal
Thanks 
A cross-encoder can give an additional performance boost, but comes at additional compute overhead. So you can choose what is more important: Lower latency and less compute: Just use a bi-encoder
Higher latency, but potentially better results: Combine with a cross-encoder
For 4k articles I think just using a bi-encoder will be fine.
If your article are substantially longer than 500 word pieces, it might make sense to break them down to paragraphs and to encode these individually. Bi-encoder and cross-encoder both have a length limit of 512 word pieces (which is about 300-400 words).