Matching two people. One has 7% in common with the other. The other has 70% in common. What's a fair match score?
It seems you're looking for a symmetric set similarity measure.  (Symmetric since, as you point out, $A$ should match $B$ as much as $B$ matches $A$.  Set similarity since each person's preference is defined by a set of objects.)

A number of these are used in the CS literature.  Probably the most common is Jaccard similarity, defined by $|A\cap B|/|A\cup B|$.  In your example, $A$ and $B$ have 7 elements in common, and there are 103 elements between them, leading to a similarity of $7/103$.  A similar metric is Braun-Blanquet similarity, $|A\cap B|/\max\{|A|,|B|\}$; in your example this gives $7/100$.  With these as starting points you may be able to find further metrics that capture what you want better.  For example, here's a list I found while writing this.

What's notable about these metrics is that they don't take each person's dislikes into account---the similarity is defined only by what's on their list, not what's not on it.  (So you may think it makes a better match if two people don't like fish.)  Incorporating this would require a universe of elements (so any element in the universe not on the list is considered a dislike).  In this case you can use the classic Hamming Distance.  You have other options as well, like Euclidean distance or even the Sørensen-Dice similarity.

One benefit of using one of the above, well-known similarity measures is that you can use known algorithms to compute nearest neighbors quickly.