# Announcing a third-party search engine for Math StackExchange.

Approach0 is a math-aware search engine. “Math-aware” means you can add math expression(s) as some of your keywords to have search engine help you find similar expressions. Check out here: https://approach0.xyz

This is my side-project, hopefully it can be useful in some cases to help Math SE users find more similar questions before posting a question for help.

I would love to hear any feedback from you guys.

EDIT: If you are unable to get expected results or have questions related to searching on Approach0, Please go to this chat room (otherwise there will be too many comments in this thread). For those who want to report a bug (not have to be confirmed) or request a feature to Approach0, please go to project issue page. (You do not have to be familiar to GitHub to create an issue, just click that button and write some description on things you feel not running well). This will attract potential contributors from GitHub to participate and get developers' attention.

• This does look useful. The greatest problem about searching for math is that someone may be discussing the expression you have in mind with different variable letters, which utterly stumps general search engines. As an experiment, I tried searching for $st-s-t$, and got many relevant results that discuss the two-value coin problem with variables different from $s$ and $t$. Well done! – hmakholm left over Monica Sep 11 '16 at 10:51
• The second experiment didn't go as well -- trying to find this answer of mine I searched for $\lim_{t\to\infty} {2t \over t+\sin(t)}$, but got no results. Only when I replaced $\sin(t)$ with $\sin t$ did it find the original post. The original had \frac instead of \over and that equivalence worked fine, but it may be a useful improvement for it to know that brackets around arguments to simple functions such as $\sin$ and $\log$ are optional. – hmakholm left over Monica Sep 11 '16 at 10:59
• @HenningMakholm Thank you for your advice. I have already noticed this problem, and indeed plan to improve on this. This is an early version, it simply thinks \sin(t) and \sin t as being structurally different. In future version, I plan to do "query expansion", e.g. query \sin(t) would become \sin(t) or \sin t. But this comes with some difficulties, such as the ambiguity of expending \sin 2\pi (computer needs to know math conventions to guess where is the bracket). Also, if there are too many expansion possibilities within an expression, that will consume a lot computer power/time too. – Wei Zhong Sep 11 '16 at 12:19
• Looks good and seems to work very well so far! One suggestion: instead of having the raw link as the title of each result I think it would be better if the title was the acctual title of the question found. Sometimes seeing the title makes it easier to see if the match is what you are looking for. Anyway good job! – Winther Sep 13 '16 at 0:00
• Thanks for your nice work. That was something we always need in MSE. I appreciate your work too much. – Felix Marin Sep 13 '16 at 2:20
• @Winther Good suggestion! Although that will consume more disk, and re-crawl entire MSE. I definitely think that will help users a lot. I plan to add "title" in search results in the next big version. – Wei Zhong Sep 13 '16 at 7:44
• Wow, Wei Zhong -- really nice job with this, I'll be trying it out. – 6005 Sep 13 '16 at 8:31
• With some fine tuning, this may be a huge improvement of MSE. I hope that the MSE staff will join you soon in the development phase and later implement your search system together with the actual one. (+1) Good job. – Jack D'Aurizio Sep 13 '16 at 20:48
• @JackD'Aurizio Well, how I wish. I would love to do things that I feel useful. However, not very optimistic (see meta.math.stackexchange.com/questions/9125), people would rather use old tricks and choose to trust Google in any ways. Long way to go. – Wei Zhong Sep 13 '16 at 21:23
• @WeiZhong: count me on your side when a discussion about that will arise. – Jack D'Aurizio Sep 13 '16 at 21:24
• @Myridium Yes, someone above already suggested to add title in results. Please be tolerant on my first minimalism version, the next version I wish to add title into search results. If adding tittle can improve the readability of snippet, then of course it is the next priority in my project TODO list. – Wei Zhong Sep 17 '16 at 15:00
• A search engine like this has the potential to be a revolutionary improvement for this site. It could enable you to type in any equation and instantly find everything that is written about it. It could make everybody work 1000 times faster. Well done. I don't see how google is ever going to compete with this (as others seem to think). And of course it's not going to be perfect right away. Improving and fine tuning is going to be a continuous process. – Rutger Moody Sep 22 '16 at 9:33
• @Winther, See my comment above. – Wei Zhong Sep 25 '16 at 7:49
• Dear @WeiZhong, is there an analogue of approach0 but for MathOverflow? – Watson May 30 '18 at 21:39
• @Watson There was a request actually. Mathoverflow is more "professional" mathematical Q&A site, I have a concern that if most people using Approach0 are not familiar with those advanced math knowledge, introducing it into search results can be a little distracting. And those Mathoverflow users are likely to know where to find answers already? I may be wrong. But if you have your reasons, welcome to go to that thread and express your interests, or, explain why it may be helpful? – Wei Zhong Jun 1 '18 at 5:03

## 2 Answers

It seemed to me as a good idea to make a CW answer where Math.SE users could add the problems they stumbled upon while using this search engine. (EDIT: And we can also use this chatroom for discussing Approach0-related issues and searching for questions in general.)

• I was unable to enter things like $\Bbb N$ $\Bbb N$, $\mathbb R$ $\mathbb R$, $\mathcal S$ $\mathcal S$, $\mathfrak c$ $\mathfrak c$ or $\mathscr F$ $\mathscr F$. When I tried to enter them, it ended like mathbb R$instead. (EDIT: As explained, in a comment, this depends on capabilities of mathquill, which is used as math input editor. However, it is still possible to edit directly raw query. Examples: searching for$\mathbb R$cardinality, searching for$\mathbb R$, searching for$\mathfrak c$and$2^{\aleph_0}$, searching for$\mathfrak c$and$\aleph_1$.) • I tried out of curiosity to search F\dashv G$F\dashv G$, and it seems that the$\dashv\dashv$symbol is assimilated with$\cap\cap$, as the two searches give the same result. The same happened with$\times\times$and$\vdash\vdash$. Looking for expressions with different variables is excellent, but different symbols can completely change the meaning of an expression. • Searching$\vee\vee$returns a large number of irrelevant results, with many terms unrelated to$\vee$being highlighted. i.e. this is the 5th result, in which the symbol$\vee$does not appear at all. • I saw this question asking for the sum of$\frac n{2^n}$, which we have seen many times before. Typing$sum 2/2^n into the search box did not find any of them. I know I have answered one.

• I searched for \oint $\oint$, but I only got results related to \int $\int$. I tried for \oint \frac{dz}{1-z^2} $\oint \frac{dz}{1-z^2}$ which is an integral that appears quite often but it did not yield any correct results.

• Approach0 is using mathquill as math input editor, currently it does not support these commands you mentioned (e.g. mathbb), however, you can still search it. But instead of inputting it in query box, you should use "raw query" box, or just paste your $\mathcal S$ into query box. You will need to do this until newer version of mathquill supports these commands. – Wei Zhong Sep 17 '16 at 10:45
• Yes, this is because dashv is defined as "CAPCUP" category in Approach0 source code (see github.com/approach0/search-engine/blob/master/tex-parser/…), this can be inaccurate due to my limited math knowledge. If anyone feel there is a better category it should be put into, just send a pull request to the source code :) – Wei Zhong Sep 17 '16 at 11:00
• The previous comment is related to the problem pointed out by @ArnaudD. So perhaps it is reasonable to ping him. – Martin Sleziak Sep 17 '16 at 11:16
• @WeiZhong I think that searches with $\aleph_1$ are good example of situation where searching for arbitrary variables instead of the ones given in the query does not work well. AFAIK the letter $\aleph$ is hardly ever used in mathematics for anything else rather than for cardinals. In Approach0 things like $T_1$, $U_1$, $x_1$ are matches too. Is there some way around this? (If this will need longer explanation, feel free to respond in chat.) – Martin Sleziak Sep 17 '16 at 15:53
• In approach0, if there is a post that has \aleph_1, then search engine will prioritize it in search results (higher rank), if you do not see relevant results, most likely the index does not contain \aleph_1. I still think returning things like x_1 (with lower.rank) is helpful in case some symbols are interchangeably used. – Wei Zhong Sep 19 '16 at 7:19
• For your third point, $\vee$ does yield some relevant results (among top 4 as you already notice), they are symbolic equivalence matches. However, $\vee$ is defined as operator (see github.com/approach0/search-engine/blob/master/tex-parser/…), that means using it without forming a valid math expression may give you unexpected results. Differentiate operator and operand in this search engine has some benefits, it is hard to explain here, mostly due to efficiency consideration and the methodology approach0 is using to search math. – Wei Zhong Sep 25 '16 at 3:44
• For your fourth point, I have not investigated thoroughly. But this post (math.stackexchange.com/questions/1934367/…) is very recent and I am sure it is not indexed (I have not renewed our index for weeks). Also, by searching \sum_{n=0}^{\infty} \frac{n}{4^n}, you will get many relevant results, although I cannot find this one (math.stackexchange.com/questions/50919) too, but I believe the crawler missed that one, I see no reason that such a simple expression cannot be handled correctly by approach0. – Wei Zhong Sep 25 '16 at 3:53
• Does using $\oint\frac{1}{1-z^2}dz$ help you find more relevant results? Sometimes you have to change the form of expression because currently Approach0 has no knowledge on that $\oint\frac{1}{1-z^2}dz = \oint\frac{dz}{1-z^2}$. These math convention stuffs has not been programmed into it, but definitely will improve this in future version. – Wei Zhong Oct 4 '16 at 4:07
• As for \oint and \int, current parser makes little difference on that (see github.com/approach0/search-engine/blob/…), I can change this behavior easily (need to re-index the entire MSE though), but next time you will not get any \int if you search \oint. We can discuss whether to change this in chat room. – Wei Zhong Oct 4 '16 at 4:16
• Hmm, I did not get any \oint result neither, is there any \oint\frac{1}{1-z^2}dz really occurs in old MSE posts? (I also assume it occurs) If there really is a posts containing \oint\frac{1}{1-z^2}dz, please let me know, I will investigate it. – Wei Zhong Oct 4 '16 at 4:22
• @WeiZhong Indeed, I tested it with the other form but again no correct results were found, most probably since as you state Approach0 does not make any difference between \int and \oint. I'm pretty sure there are, but for some reason google is not able to find anything relevant, fortunately I still remember a post from the past week that contains it. – Workaholic Oct 4 '16 at 7:58
• @Workaholic Since I just moved to another city, and has not quite settled down yet, I have not updated approach0 index for at least four weeks. If it is from past week, I think it is still not indexed. But I will try to grab this post into index when I have time, just wanna test whether or not approach0 can find it. I will get back to you when I finish this experiment. – Wei Zhong Oct 4 '16 at 8:48
• @Workaholic No luck in finding a related post. But I did a integrated test locally (see this chat room messages), everything works as expected. – Wei Zhong Oct 4 '16 at 14:54
• @Workaholic I should be more specific on what message I refer to in chat room: chat.stackexchange.com/transcript/message/32711253#32711253 – Wei Zhong Oct 4 '16 at 15:23
• @RossMillikan I have tried whether I can find the question about the series you mentioned using Google and using Approach0. You can see here to which extent this was successful. – Martin Sleziak Oct 6 '16 at 1:43

I appreciate your work and am looking forward to using it; it seems that I am not alone in this, given that your post currently has 12 - 1 votes. There is one problem though: starting by the end of August, you have posted on MSE a number of answers that only advertise your search engine and point to duplicates found with the said engine (half of those duplicates are only superficially duplicates). These answers of yours are not really answers, some of them got deleted, others got downvoted (by me, among others - please don't take it personally). I would appreciate your programming work even more if you stopped marketing your (otherwise nice and valuable) work. I would really be happy if you also deleted those answers.

Notice, though, that you are facing tough competition: while the internal MSE search engine is very poor (which is strange, because the engine that finds similar questions when I start typing the title of a new question, and the one that finds similar posts to be displayed to the right of a page, are very good), Google does a good job at finding not just what you type, but also what you mean (the two not always coinciding). Good luck competing with this!

• I understand your point, but to clarify, my project is open source, marketing is not my interests. And it is a personal project, I have no intention to competing with any one let along Google. Those answers I posted on MSE are really just some cases when I am testing its usefulness by picking random recent MSE posts, and get excited when some previous posts seems relevant to me. Then I answered it with the mention of my project, hoping that helps and also MSE users get to know it. – Wei Zhong Sep 12 '16 at 7:17
• @WeiZhong: Of course, when I say "marketing" I don't suggest that you are doinf it for money. Marketing can done for open source projects too. Those answers that you have written could have very well been comments. – Alex M. Sep 12 '16 at 7:20
• There is an user who posts a question gets what they want and send thankful message to me. However, I am not good at judging relevance given my math level, I really agree that I may be wrong on finding similar posts. Thus I agree you on this point and going to delete some, however, some answer like this one is considered irrelevant but I have no idea why, if anyone can leave a comment under down-voted answer, just explain to me why it is a bad answer, I will learn from it and avoid similar wrong answer next time. – Wei Zhong Sep 12 '16 at 7:28
• If you also feel usefulness of it, and given that I am not competent to judge the "mathematical" relevance of a previous answer, then I welcome you to give me any advice on whether or not this project should try to reach more MSE users and if yes, what can we do to help users to utilize its usefulness without "annoying" anyone. – Wei Zhong Sep 12 '16 at 7:40
• And thank you for that suggestion, next time if I find relevant previous post, I would rather post in comments instead of as an answer. – Wei Zhong Sep 12 '16 at 7:44
• On 1920037, the thing to do is to vote to close as a duplicate [I just added the 5th vote to close]. Your "answer" was not an answer. – Gerry Myerson Sep 12 '16 at 23:13
• How can I normal user report a duplicate? Is it only moderators who can mark a duplicate? On 1920037, I think this gets a little unfair that the question is marked duplicate but the person who first finds it duplicate get down voted (I am sorry, I am a new user, but could anyone tell me the correct way to report a duplicate). – Wei Zhong Sep 13 '16 at 8:25
• @WeiZhong Re: How can I normal user report a duplicate? You would probably have a more reasonable chance of getting an answer if you asked it as a question rather here in comment (where not many people notice it.) I will add a link to faq on duplicates. Since you are below 3k the only option for you is to flag as a duplicate. – Martin Sleziak Sep 15 '16 at 14:54
• @WeiZhong However, if you are not entirely sure whether a question is duplicate, perhaps reasonable thing would be to ask, for example in this chat room. – Martin Sleziak Sep 15 '16 at 14:54
• @MartinSleziak Thank you Martin, now I know how to do that! Thank you for helping me again. – Wei Zhong Sep 17 '16 at 10:56