What I was going to say, I'm going to explain a little more. I wanted to explain the remaining terms in this analytic torsion formula. And then, so far, I've discussed what we expect and some heuristics for it. And I'll say, I'll discuss a bit what we can prove. I just wanted to make a little remark before that, which in response to a question that Paul Nelson asked last time, which is that I've been talking about imaginary quadratic fields all the time. There is a kind of parallel phenomena, which you can see for just classical modular forms. So that's the kind of thing we've been discussing. So the sort of thing we've been doing is you take this group and you take it to billionization. And what you find is it has typically a small free part, but it can have very large torsion part. And there's a similar phenomena for SL2, for just classical modular forms. But it occurs somewhere which maybe one doesn't think about so much, which is for weight 1 forms. So if you look at S1 of n, that is the space of weight 1 forms. Now this space, the weight 1 forms are in some ways the most interesting weight because many things one think of don't work here. As the simplest example is there's no dimension formula. The dimension is typically very small and it varies irregularly with n. We have some understanding of it, but anyway it's very irregular. But it turns out this has a very similar, you can interpret this as part of the classical space of weight 1 forms. You can interpret as, so you can make an integral version, I'll call it S1 nz of this space, so that the classical space is just what happens when you take the free part. Another way to say it is it's possible for a weight 1 form, it's possible to have a weight 1 form mod p, which doesn't lift a characteristic 0. And except for very relatively trivial thing instances, that phenomenon doesn't happen in higher weight. In higher weight, once you've worked out what the right notion of a mod 7 holomorphic form is, it always lifts the characteristic 0. But here this can really fail. And this was, but this story is much, I would say much less, so the first evidence of this was given some mod 2 classes that don't lift were found by Mestra. And then some more were found by Buzzard, but these were still relatively sporadic. And then on the basis of the kind of analogy is what I was saying, I had a PhD student who I asked to compute this integrally for many n, so George Schaefer. And he found that, in fact, this really does behave like this. That is to say, it has a very large, typically, it has a very large torsion component. So the classical space of weight 1 forms is like this small tip of an iceberg, but underneath there's this vast number of n very large primes where you have a mod p weight 1 form that doesn't lift the characteristic 0. This story is less well understood. I don't have. So in principle, this is an analog of everything I'm saying, but Schaefer's data is a little bit, so it will be nice to have a conjecture here that this is growing at some specific exponential rate and so on. There are some mysteries in this data, which I don't understand. But anyway, so let me just say for now this is less understood and it would be worthwhile to develop it. Yeah, so usually we don't think of weight 1 forms, but somehow as time passes, I sort of see them as the most. They have many kind of boundary behaviors, which are very interesting. OK, so here's what I'm going to say. So what was our setting actually? So gamma 0n, so now O is this imaginary quadratic order, so something like z squared minus d. And we take this group inside SL2O. Sorry, are there any questions about this story? So yeah, Kevin Buzzard has a nice paper about it. My student's thesis, Schaefer's thesis is online. It's interesting also from just a computational point of view that it's not trivial even to compute these things. OK, we go here and remember we have this subgroup. And again, I'm going to say that although I'm stating this setting, many of the results are proved only in the co-compact setting, although they should certainly extend here. Yes? What do you mean by computing these fun things? Yeah, so for example, I give you some n, like 500. And I ask you to give me a basis for the space of weight 1 forms over the complex numbers or mod 7. And even over the complex numbers, it's not a trivial question. Of course, it's clearly computable, but it's better than mass forms. But I mean, to say one word, you can embed this space in a higher weight space by multiplication, but then you have to figure out what its image is. That is, it's not clear that when you divide, you don't get a pole. OK, so back to, right. So what is the conjecture we've been discussing is that the size of the abelianization of this and the correct scaling is the volume goes to 1 over 6 pi. So let me state again this, all right. So as far as, so I spent quite a while giving you heuristic motivations for that. Now, as far as analysis goes, the main way we have to understand this is this story of analytic torsion. And I'll write the names again. This was sort of discovered by Ray and Singer. And the proofs were given by Chigar and Mueller. And what they say is, well, we can access, at least in part, this thing analytically. So the size of this, again, right. So this statement is valid in the co-compact case. If I have time, I'll say some. I mean, we now know a fair amount in this case, although short of any complete formula. This, multiplied by a regulator divided by the hyperbolic volume, is equal to some ratio of Laplacian determinants. So as I said, this right-hand side is related to a Solberg-Zeta function. What I want to do right now, well, we've discussed this action hyperbolic space. So you know what this is. I'll tell you what this is. And then I'll spend some time saying what we can prove towards this. And then we'll come back to the extent there's time left. We'll discuss this right-hand side a bit more. But to say, for example, this delta 0 is just a usual Laplacian operator on functions. The 1 is means on forms or in different weight. So it has some eigenvalues. So 0. So in the co-compact case, it has no continuous spectrum. And this determinant is some way of making sense of the product of the eigenvalues. So we're going to talk about that just by example after at the end of the lecture, because as I said, there's some, you can also think of this in terms of Solberg-Zeta function. I actually prefer thinking about it this way, because this way, it's sort of clearer what the effect of the eigenvalue spectrum is on it. So that's why I say it this way. OK, what is R? This is what I call the regulator. And what it's meant to measure. So R is 1, as I said earlier, when the abelianization is finite. So in general, what it's meant to measure is it measures the size in some way of the free part. All right, so just as in the case of number fields, in general, it's some expression with determinants. So to keep life simple, I'll just talk about the case where it has rank 1. So I don't have to write down determinants. So let's say that suppose that this gamma naught and ab was actually a copy of the integers plus a finite. OK, so in general, the story will be similar to what I say, but with determinants. So what R is meant to measure more precisely. So in this setting here, you have, so you can make there is going to be the way I set it up, there's a unique up to sign, surjective homomorphism like this. So you can just project this onto z. And that's the only up to sign, it's the only surjection from gamma naught n to z. And what R is meant to do, it's meant to measure that in some way it measures the size of this homomorphism. All right, so I will give you the precise, I mean, it's a precise definition, but I want to just describe. So this quantity is interesting. So let me describe a couple of different ways that you could try to measure the size, and it'll turn out all these ways are from the analytic point of view the same. That is, they're all essentially the same order of magnitude. From the algebraic point of view, the specific definition of this is interesting, because its exact definition is related to other arithmetically interesting quantities. But analytically, so some ways we could measure the size. So the most naive way is you could just say, well, this is a homomorphism from this group to z, and I'll just let's look at a bunch of small elements here, and I'll just take the largest value it takes. So there's a group theory way where you just take, let's say, the largest, all right, so you pick some bound for how big your entries should be. So maybe you go up to, so a reasonable thing to do would be to go up to some power of n.  But by the way, because you're multiplying matrices, if you made this n to the 20, you don't really expect it to get that much bigger, because when you multiply two matrices, the entries multiply. So the matrices get larger without fee getting. Roughly, you expect this to just grow logarithmically. So exactly what you put here is not so important. By the way, what we are concerned about for our applications or what we're concerned about is, will be does this r grow exponentially with n or not? OK, so if we're just strictly thinking about this problem, we need to understand it only at a very core scale. OK, there's a topological way of thinking about it. So all right, so I'll say, again, a fact from topology, which is true exactly as stated only in the compact case, and otherwise you'd have to modify it slightly. But the space of homomorphisms from this group to the integers is isomorphic to the second homology. So I said I'll try not to talk too much about homology, but this will actually be quite explicit, so I'll explain. So this homomorphism fee, you can represent it by something in the second homology of this manifold. So I'll say what the map is. So suppose that we have S, which is a surface inside this three dimensional manifold. How do we make, I want to say from it, how we get a homomorphism like this? OK, so I'm just going to make this explicit. So this S went overboard here. So what you do is you intersect S. You send S to, so the homomorphism, so send gamma in gamma 0n to the number of intersection points, so of S with the path from w to gamma w. So for any. OK, so in other words, this path from w to gamma w, it's really a loop here, and you see how many times does it intersect this S, counted with a suitable multiplicity. OK, now given that what you can do, so over here, by the way, one reason I'm mentioning this, I know it's a little bit of a feel of always, but is that it's actually very useful in estimating R. OK, so I'll say something about that if we have time. Right, so the question of measuring the size of this, it translates to the question of measuring size there. But over here, there's a famous norm due to Gromov and Thurston, which is that you can just measure the minimal complexity, or the minimal genus, of such a surface S. OK, so you look at all surfaces S that induce this, and you see how, in other words, this right down the simplest possible surface I can hear that induces it, and you measure how complicated that surface is. OK, now I'll finally come to the definition which is the correct definition for this, which is analytic. I'm sorry, are there any questions so far? Can you please explain what is this way, Matt, for the last one? Sorry? For the homomorphism group to homology group? Yeah, so it's sort of clear to write just this way. So it's a fact, not that this is an isomorphism, but it's not. OK, so analysis. And for analysis, let me just quick first remind you of something that we said at the very start of the lecture series for SL2Z. OK, so at the very start, something I said is for subgroups of SL2Z, we had this pairing between gamma 0n, abelianized, and the space of weight 2 forms of level n.  OK, so there's a similar pairing here. And I'll just say what it is. And what we're going to do is basically transfer this phi over to something here, and then we can measure its L2 norm. OK, so I'll write this up. But so that's what we're going to do. Phi is represented by a harmonic differential form, and we can take its L2 norm. So there's a similar story to this. So I'll use the same notation to be kind of suggestive. So let S2 of n be this. So over here, you had weight 2 holomorphic forms, which you can think of as holomorphic differential forms. In our setting, there's no holomorphic, but we can still say harmonic. So harmonic differential forms on gamma 0n mod H3. So you can think of these as being mass forms of a specific certain eigenvalue and weight. And then there's an exact, this story goes over word for word. You can pair these by sending it to integral exactly the same. So same formula. OK, so there's a pairing from this. In both cases, the pairing from this to the complex numbers. All right, now having said that, so now what happens is there'll be a unique, there's a unique omega such that phi of gamma is given by pairing with that unique omega. OK, so what we've done in other words is we've taken this discrete object, which is a homomorphism, and we've kind of spread it out over the manifold to get this representative omega. And we define our regulator to be the L2 in a product. So sorry, this symbol is used in two different ways, but this is the L2 norm on the manifold. So it's like a Peterson norm. This object is very delicate. I'm going to be saying more about its algebraic properties in the next lecture. It's not so hard to try to see what it is up to rational numbers. But if you're interested in the size of something, it's not so great if you know it only up to a rational number. And that's very subtle. So next time I'll also try to mention some problems in the next lecture also. But the point is I've spent the time saying these three things because they're actually all essentially, from the size point of view, they're all essentially the same. That is so these all have essentially the same size. So the most useful of these is the, and this is not a hard fact, but maybe it's nice to have all these. The most useful is the relationship between B and C. And if you want an exact statement, you can see my paper. I'll refer to it again. So I'll say this is my paper with Nicholas Bergeron and Haluk Sengun. And there. It's certainly not a hard fact, but we just write down exactly what I mean when I say that these have. And we don't write the relationship with A, but I don't think it's very hard to check. Unfortunately, A is almost useless. Somehow, in the sense that computationally, this phi is easy to compute. But theoretically, it's very difficult to get a hand on. Theoretically, what's easy to get a hand on is this omega because it comes from automorphic forms or physically constructing a surface, which you could also do by geometry. All right, so that is what r is. And next time, we're going to talk more about r. And especially, how is it related to L functions and so forth? So it's very. All right, so now let me, I still have to say something about this, but let's now pause and I'll tell you sort of what we know how to prove in the direction of this conjecture. So the tool, the only real tool, we have to prove things like this is this formula. But even here, there are still many obstructions, which I'm going to discuss. Are there any questions? So the definition of phi really comes from part b. Can I think of that? So I'm sorry, I might not be understanding your question, but I'm assuming I'm in a setting where this happens. OK, so there's a unique such thing up to sign. OK, and what I'm doing in these different parts is I'm saying, well, here are different ways to measure the size of phi. You can do it directly, or you can translate phi to being a surface, or you can translate phi to being a differential form. And this one is kind of the maybe the most canonical one, but they're all size-wise similar. By the way, I should say, yeah, this thing, you can also sort of talk about similar things just for SL2z. You can ask how big are these homomorphisms. And there's a nice paper of Goldfeld where he discusses this question. But in that case, you have a much more sort of concrete way of understanding it because you have these modular uniformization. So our problem here, our basic problem is that we have removed ourself from the world where you have kind of real algebraic varieties to play with, because everything is purely analytic. OK, so now let me spend some time telling you what can we prove towards the conjecture. Are there any other questions? All right, so let's look at this formula for a moment. So let's call this formula star. Let me sort of list the difficulties you have. And so one can try to apply star. So one can analyze, let's say, the analytical behavior of the right-hand side. So this question, all right, I haven't precisely defined this for you, but as the level goes to infinity, this is related to something Valentin was saying, you understand what the distribution of eigenvalues converges to very precisely. And correspondingly, it's fairly easy to understand the asymptotics of this, except for the following painful issue. Maybe you have an extremely small eigenvalue. Maybe this operator has an eigenvalue very, very close to 0. And then this becomes small and there's nothing you can do about it. So if there are no small eigenvalues, or maybe a better way of saying it is few small eigenvalues for delta 1, OK? So the exact condition, so let's call this condition no f for few small eigenvalues. So if you go through this, you find everything is fine. You understand exactly what's going on, before you have to drag out the small eigenvalues by hand. And when I was thinking about this, and now I still know absolutely 0 about this, absolutely nothing. But the nature of the statement that you need is the product. So we would need to know something like this. The sum over all eigenvalues lambda, so these are eigenvalues of this Laplacian operator here, basically what you need to rule out is that there are a whole lot that are exponentially small in the volume, which is absurd. So it's like sort of clearly will never happen. But so let's say I'm going to call v the volume of your thing we're looking at. So let's just say that we're always assuming a co-compactness, but I will comment about what we know about the non-co-compact case. But for my initial setup, let's not worry about it. What you need is for any positive delta, you take all the eigenvalues less than volume to the delta and sum their logarithms. So you'll worry that there's a, and you scale it by v, this should go to 0. So if you think about what the limiting distribution is, you see this is very, very unlikely to fail. But it seems extremely difficult to prove. So as a toy case of the kind of issue here, you can see, ask for SL2Z, do you have any understanding of how close the eigenvalue of a mass form can be to a quarter without actually being at a quarter? So if you think about a moment, this clearly should be true, but I see no way of, anyway. So this is, that's one thing. So the second thing is that you need to know that R, I'll call this R for regulator. You need to know that the regulator is also growing at a sub-exponential rate. By the way, the only problem, yeah, it's very easy to bound R from below. It's not a problem. And anyway, if R was small, it would only increase this. But it's, OK. So the point is that given, about, so I know Andrea Strumbergs, and I talked to him about this many years ago, as probably, but certainly looking at that, the spectrum near zero didn't show any peculiar behavior. That is, it behaves as you would expect from the limiting point of view, and then certainly you would, yeah. I would love to see even any much weaker, I basically know zero about this. This is, the situation here is a lot better, I'll say about in a second. But so what do we know? Given F and R, so here's a fact. Given F and R, we get the conjecture. Now, all right, this is, so I'm going to talk, as I said, I know nothing about this. We know quite a bit about this. But still, actually what got Berger and I started on this was the observation that, in fact, in this closely related context, we can completely sidestep both of these at the same time, and then we get unconditional results. So let me say a bit about, so I have to change the problem slightly, and then we'll really get the analog of this conjecture, and then we'll come back to what more we can say here. So, Berger and I, this is in a paper, so, OK. So there's another paper of just with Nicholas Berger and I from a few years ago, but not with Sengun, OK. So you see, can avoid both problems by changing the weight. So now, here I, right, so in this, in this board I'll say, in a sense, the most, the really unconditional things we know. So when I say changing the weight, let me go back for one moment again to SL2Z, OK. So I'm not going to, I'll state the result but without defining all the terms, because, again, I don't want to go into homology. But suppose for SL2Z, as I said, there's a pairing between this and weight two forms. Now suppose you want to know, as Henrik was asking about in the first lecture, well, what's the analog for higher weight? There's no analog for weight one, OK. Weight one, there's really nothing. But this works perfectly well for higher weight. You just have to be willing to. So for higher weight, the analogous statement is rather than this, you have to take the homology of this, the same group with coefficients in some module. So this is a module depending on k, OK. So all right, and the same thing is true here. The analog of changing the weight is looking at homology with coefficients in a different module. And so what we show is that, so we prove the analog of the conjecture. So for in this context, so in the context of a co-compact group in SL2C, for what we call, for what we call strongly acyclic weights. And I won't say what this is, but the point is that, in fact, so the weights here, in this case, the weights are parameterized by a pair of integers and strongly acyclic means that the two integers are different. So it's actually a generic condition, not a special one, OK. When I say the analog of the conjecture, there's a different constant, but otherwise the conjecture is exactly the same, OK. So this is very satisfactory in the sense that, from the point of view, say, of the Langlund's program, there's no one weight as as good as another. So it certainly gives you pretty strong evidence for the underlying phenomenon. But in fact, so we did this for all groups. And when you do this for all groups, something very pretty happens, which I will say, OK. So for the exact definition of this, the exact statement, you can see our paper, but it's that type of statement with a different constant and with abelianization replaced by homology. One thing I wanted to say is that at almost the same time as our paper, Müller proved a similar statement, but essentially the same time, but as the weight goes to infinity rather than the level, OK. So it's sort of strange that we were, yeah. So the case, so the proof is by following the same strategy. Yes. So OK. So the strongly acyclic case, I mean, the point is, and it's a little bit surprising, is that these strongly acyclic things exist in the first place. But given that they exist, what happens? The eigenvalues are all forced to be away from 0 and r is 1. Yeah. So it's a complete surprise in a way that they exist because they don't exist for more varieties. So it's not, OK. Anyway, so this is interesting. I mean, as far as I know, no one is really thinking about this before. And then Müller somehow was thinking about it exactly the same time as we were. Let me say something about general groups because there is something to be learned from there. So we prove a similar statement. So Müller means Nicola, Berger, and I. With SL2C replaced by any group, so similar statement means exponential growth of some similar object, by any group G satisfying, OK. Some condition, which I'll, the rank of G minus the rank of a maximal compact subgroup is 1. And gamma ab was replaced by some higher homology group, OK. So for some higher Q. So I'm not going to larger Q. Now, this condition here is a strange condition. Rank G minus rank K is 1, OK. So for example, it includes the groups SL3R, SL4R, maybe SL, OK, SLPQ with P and Q odd, but not SLN for n bigger than 5. Bigger than or equal to 5. SLNR. So these are groups. So if you don't know what to do, it doesn't matter. Almost, there's only maybe one other example, if I remember rightly. But OK, so you go through this method. The point is there's all sorts of computations to be done here depending on the group. And you find here disappointment that you get a result of this nature only in this case. But here something wonderful happens is that according to heuristic B, so you can work through this heuristic with the non-Abelian Cohen-Lenzra heuristics, which I mentioned earlier, and you find this wonderful thing that these should be the only groups, only G, with exponential growth of torsion homology. OK, so here's where this heuristic B by itself is certainly something you should be somewhat skeptical about. But it is a very nice thing that it meshes exactly with what you can prove. So the proof for a reason that I won't go into, but you prove something here and then otherwise you get nothing and you're left wondering what happened. But fortunately, heuristic says is that the cases you can prove are really, I think, the only cases where you have this. So in other words, we conjecture that we can't prove, thus, that there is no exponential growth in any other case in the cases where rank G minus rank K is not 1. I think we can't prove it's maybe not a strong. Again, this is the sort of thing about which I know is 0. That is, I have no way besides completely trivial ways of giving you upper bounds, interesting upper bounds for the size of the sort of things we're discussing. So it's OK. So all this is under this switch that you switch to a different weight where you can avoid these issues. And now I'll come back to what kind of things we can say about, especially the second thing. So now we'll go back to the original question, trivial weight corresponding to abelianizing. Oh, what about in the non-co-compact case? So now, at least for SL2C and the non-co-compact case, there's quite a bit of work. And maybe there's work of Jonathan Faff and Jean Rambeau, which give now similar results in the non-compact case. By the way, the non-compact case here is really painful. It's much worse than just the horror of the trace form. I mean, when you try to regularize this and you have a continuous spectrum, it's really, really awful. This strongly acyclic thing makes life easier. But anyway, I just want to say it's not, I put it like a small, I think the number of pages involved in this one line is probably greater than the number of all the other papers mentioned put together. So it's a substantial problem. It's an even more substantial problem to do the same thing in higher rank. And this is really not just a technical problem. I've thought about this for SL3 and I really, in fact. I mean, in rank one, at least, you can work hard and sort of see how to do it. But I actually don't even see how to do this for SL3. All right, so now, OK. So let's talk a little bit about what we can, let's go back to the original problem, what we can say about this. Are there any questions? Yeah? Is there absolutely anything known about F? Is there anything like trivial resolved or is it just? I personally know, oh, trivial resolved. One could give a bound for this. I'm not sure how big. I mean, it's certainly not sure it goes to 0, but you could give some bound. The point is, in this case, I mean, for example, in some cases, you don't even know how to give any bound on how close an eigenvalue could be to 0. Here, there's some a priori bound you can give over how close an eigenvalue could be to 0. Because somehow, you can switch the eigenvalue problem for a discrete problem with integer matrices and you have a lower bound on how close the eigenvalue and integer matrix could be to 0.  OK, so yeah, any other questions? All right, so nothing about F, but R is better. And so today, let me say a bit about the analysis, what we know about some things about the size of R. And then tomorrow, I'll talk about the kind of, or whenever the next lecture, I'll talk about the little more about it's an algebraically interesting object. OK, so what we want to show, so we'd like to show this rewrite it over here, log R over. So R, the regulator should be bounded by the exponential of epsilon times the volume. So if this fails, if you look at what am I saying, I'm saying that if this were to fail, it means you have this homomorphism to z, which takes exponentially large values on small matrices, which seems absurd. So it might seem that this is something which, again, this might seem like something which, so to speak, you should expect. But that's not at all clear to me. So I don't know the exact current status, but I'll say that Brock and Dunfield have at least have produced maybe not counter examples to this exactly, but closely related counter examples for non-arithmetic gamma. So they don't produce a counter example in the exact setting where, say, Bursar and I make a conjecture, but they produce something very closely related. So it's completely possible that this is always true. It really has some special feature of arithmetic and not a general group theoretic or geometric property. So let's study it. I'm going to say a bit more about what this, so maybe I'll just say in words, one case where we understand R well, one relatively easy case, so easy from the point of view of having a good upper bound on R, is when all the cosmology is when all of this space, which I called all of the, what did I call it? Well, let me just say when all of gamma naught n ab comes from base change, comes from q via base change. So I'll say via a lift in the sense of Valentin's talk. When I say this, I just mean the characteristic 0 part. So let's say tensor would C. All right. So I'm not going to, so without going into details, suppose you start off with m, which is an integer, and then you can also think of m as being in O. So you can sort of form the subgroup gamma naught m in SL2z, and you can form the corresponding subgroup gamma naught m in the big in SL2O. It turns out that there is a lift that goes from the sort of free part of this, the free part of lift, which is called base change. OK, so this is one way of producing examples where, in fact, it's a fairly common, at least not all uncommon, that all of the free part of this comes from base change in this way. Because it's sort of not here, unlike SL2z, this free part is somehow usually small except if explained in some way. So in that case, we can give the correct upper bounds on the regulator. And that uses this topological interpretation, part B. So here what you do is you produce enough totally geodesic surfaces and use part B and use part B. Now, there's a reason why we wanted to study this specific case is that for numerics from the torsion, this case actually looked pretty bad. So we were a little bit worried that this would be, this was a case that had some reason to, might have some reason to believe this would fail. But in fact, we can give a rather good bound. The actual bound we get in this case is something like, so we never wrote down that we just proved it's sub-exponential. But I think what we actually prove is something that it's exponential in square root of the volume, something like this. Can you give a criterion on M which you can check if it's valid for infinity many times? Oh, no, I can't. But I certainly expect, so this case and the other case I'll mention, I expect them to be valid infinitely many. In the numerics we did, they were both valid, say, around half of the time. Yeah, up to the, of course, some of these things change for very large values of M. But when I say this happens a lot, I mean I don't remember the numbers we wrote in the paper, but maybe half of the time in some range. OK, so a more interesting case is when, well, OK, let me just say next time. So I did want to say at least a few words about this Laplacian determinant. So all of next time will be devoted to studying this R in the case where you have a single form that comes from an elliptic curve that's not base change. So related to an elliptic curve over O. And what we'll see is that this conjecture is then becomes related to questions of difantine geometry in a sort of very surprising way. All right, so in the last few minutes, I'm just going to go back to the analytic torsion formula and talk and just give you a quick, very brief flavor of what these Laplacian determinants look like. Are there any questions? So I was planning to, I would have liked to spend more time on this Laplacian determinant thing, but it's probably the least number theoretic part of this. So I'll just, so how do we define this sort of determinant of delta? I'm going to, as I said, I prefer this way rather than the Solberg zeta function because this way, it's easier to understand this effect of small eigenvalues. OK, you can really see if there's a small eigenvalue, it causes a problem. But the definition actually makes sense for the Laplacian operator for any compact Riemannian manifold. And again, this definition is due to Ray and Singer. They introduced it for the purpose of stating their formula. And so what you do, so let you have the eigenvalues, be the eigenvalues. And a basic fact true in this context is that the function sum, so it's called z of s, sum over i bigger than or equal to 1 lambda i to the minus s. So Weiler's law tells you that this is convergent when the real part of s is large. And it actually has an analytic continuation to the complex plane, an analytic, meromorphic. Sorry, meromorphic. And you understand exactly where its poles are and so on. So this result is obtained by, it's not very hard. It is obtained by taking the Mellon transform of things we know about the heat kernel. But anyway, it's true for any Riemannian manifold. Now, formally, so ignoring issues of, well, OK. So in the region of convergence, if you differentiate this with respect to s, what you get is negative log lambda i over lambda i to the s. So formally, if you put s equals 0, so I'll put this in quotes, log of lambda i is equal to, in quotes, the negative of the derivative of this is 0 sum, if you just formally put s is 0. And this is what we take as our definition. So we define the determinant of the solution to be the exponential of minus z prime of 0. That's the definition. And it works for any compact Riemannian manifold. So let me just do, to give you a flavor, I'll just do a single example and then we'll stop. Are there any questions about the definition? Do you think you have a functional equation? No, no, that's not. Yeah, this has no sort of, none of the other algebraics. It just has a meromorphic continuation. And it's a very, it's a soft fact. All right, so let's do the example when M is a flat torus, so R2 mod z2 with the usual metric. So it looks like this, OK, with periodic boundary conditions. And the Laplacian operator is minus dxx minus dyy. And so this example, it's kind of a special example, but it, you know, we'll learn a little bit by doing it. The eigenfunctions are e to the 2 pi i nx, e to the 2 pi imy. And the eigenvalue is 2 pi squared n squared plus m squared, OK? So in other words, this function, the n and m are integers. So the z of s is, all right, I'm going to forget it. I'm going to lose the 2 pi. And I decide I almost certainly screw something up if I keep it in. So this function, z of s looks like this. So in other words, it's a value of an Eisenstein series. This is an Eisenstein series for sl2z evaluated at the point i. OK, so at the point i. All right, so to do this computation, we can actually compute this absolutely explicitly. And so I'll very briefly do it. So more generally, we can look at the, let's do it for the, so what we want, right, is we want to compute the exponential minus z prime at 0, OK? But let's do something more general. So we will compute this, but we'll do it by computing it for all lattices at once. So we look at es, which is the sum of y to the s. This is the standard Eisenstein series for sl2z. So we can recover this, look at, on the upper half plane, what sl2z is the standard Eisenstein series. And so our function we want is the value of this at i. And now, all right, so what we want is to differentiate it at 0, OK? It turns out you can do this basically by pure thought. So this Eisenstein series satisfies two properties. It's an eigenfunction. And its constant term is y to the s plus c of 2s minus 1 over c of 2s, y to the 1 minus s, OK? Where this is the completed zeta function. So now, if we want to work out the derivative d by ds es at s equals 0, let's call this function capital F, you learn something about this from both of these facts. The first thing you learn is that the Laplacian of f is equal to 1. Oh, sorry, this is not actually an equality. OK, it's this plus decaying. So this function differentiated at 0, it gets something of Laplacian 1. And the second thing says that f is equal to y, no, differentiate it, log y minus pi y over 3 plus decaying terms, OK? So if you differentiate this, and you evaluate the zeta, the pi over 3 comes from a zeta of 2. So what this says, all right, so I claim that in fact this function f is the logarithm of y times delta to the 1 over something, 6, OK, where delta is this modular form of weight 12, OK? And the reason I know this at this point is that the difference of these functions is now a harmonic function, which is going to 0 at infinity, so it has to be 0, OK? So in other words, what we've done, so in the end, if you go back to this x of minus z prime at 0, it's something like this y times delta to the 1, 6th. Maybe I might have missed an inverse. I'm not sure if there should be an inverse or not, but let me put minus 1, OK? So this is certainly a very striking calculation, because it shows disinvariant in this simple case gives you a number theoretically interesting thing. And I think that was, I mean, Ray and Singer did this computation. I think it certainly suggested to them it was a good definition. But actually, the important thing to learn from this computation is that this Laplacian, what did I do? This Laplacian thing, this series itself, I evaluated this at a specific point by looking at it as a function on the whole space, OK? And then I used harmonicity. And the sort of moral of the story is that this Laplacian determinants are very difficult to understand themselves. But you can understand how they vary, OK? You can differentiate them when you change parameters. And just to finish, so one of the reasons that Ray and Singer realized that they were onto a good thing is that the right-hand side of their formula, the right-hand side of this Ray-Singer formula, which involves the determinants, what they did is they said, well, here's something which depends on a metric. And then they changed the metric, and they watched what happens, and they found it to be metric-independent, all right? So it's very hard to understand those directly, but they could check that it doesn't change as you change the metric. So if you have such an invariant of a manifold metric, which is then independent of the metric, it's reasonable to think that it's something purely topological, OK? So that's the one takeaway from this, not the specific example, but that you can understand this Laplacian determinant varies when you make, when you change things. So sorry, I went a little bit over time. Are there any questions? Yes? Just a bit confused about your last formula. So you evaluate, you take the limit as 0, or something? I see my y on the left, and say, of x to the z prime. Sorry, where, where, where? x to the minus z prime of 0. Yeah, there's a y, but there's a y at the beginning. You see that for this? There's a y. Why are you going home? Oh, yeah, I'm sorry. That's right, I should have put, I should specialize this to the point i. That's right, sorry, thank you. So the y should be 1, you're right.


Okay, welcome to this next round of Inspiration Conspiracy and in this short video I'm going to show you how to make some journaling charms or you could hang them off a handbag, you could use them for key chains, they probably would sell well if you're going to be doing arts and crafts fairs. Making broken jewelry, bits and pieces you already have, these obviously are made out of fibers and things. I have a little bit of a speed through video and then I'll be back in just a minute and we'll talk about what I did. Alright, I'll be back. Okay, so as you saw in the video I just took apart a bunch of old necklaces that I had, broken things, you know things that you have laying around in your jewelry box that you bought and you're thinking now what the heck did I buy that for? Take it out of there and use it to make something interesting for your journals or your planners, you can hang it off your planner, I have one hanging off my handbag. These here are fibers, some of these are from Happy Mail so I love to make these and then hang them off of my planners and things and frequently I double these up and I will hang one off of the other one and that's actually how I have one on my handbag. Some of these Pandora style beads you saw were from a lanyard or a badge holder that I got from a friend. She sells them in her shop and it was actually broken and she was unable to return it.  Like, yeah. Anyway, things like that are great for this kind of project because you can use them to take apart and make, you know, a charm like this one. I used some of the beads on this one and one of the beads on this one. So, and this is the hook from the badge holder. So look around and see what you have that you can use to make some of these to decorate your planners, your journals, your handbag, you can use them as ornaments or whatever. I think they're a lot of fun. I hope you enjoyed this little quick tutorial. Look around and see what you have in your jewelry box and in your stash of old beading supplies. You all know we have them because we've all tried beading, haven't we? And see what you can do about making yourself some cute little charms to hang off your planners and things. All right. That's it for today, everybody. Go ahead and have a great day and do something nice for yourself because you deserve it and I'll see you later.


Thank you for having me here, and the talk is Beyond the Basics with Elasticsearch, and it is essentially about all the use cases where you can use Elasticsearch, but might not be immediately obvious that that is something that you can do. So we'll walk through several of those and see how and why it is suited for that particular scenario. But before we go beyond the basics, we need to talk about what are we going beyond? So what is the base functionality of Elasticsearch, and how comes that we can do all these other things? Like where is it coming from? Well, it's all coming from search. Search, especially full-text search, is the primary function of Elasticsearch. And search is not a new problem. It's been around for a while, and it hasn't actually changed much. The first essentially index over a book, over some text, has been created in 1230, and we still use the same data structures to this same day. Of course, there's been plenty of improvements, but the underlying infrastructure, the inverted index, remains the same. It is the index that you're familiar with if you've ever read any book, which I hope that you have, sincerely. And this is how it looks. You have the list of interesting words, and then for each of these words, you have a list in the case of a book, you would have a list of pages. For us, you would have a list of documents that actually contain this word. And notice several things. First of all, the words are sorted. Of course, it makes sense, because you need to be able to find the word that you're looking for so you can go to the page that actually contains it. And also, the pages or the documents are sorted as well. And this is not accidental. This is very important for us, and we'll see how. And also, when we're talking about search using a computer, there are other things that are involved in this data structure. Notably, some statistics. For example, how many times is this word contained in this document? Or what is the length of the list, et cetera? Things that will be very important later on. So when we have a data structure like this, how does the search work? Well, it's super simple. If we're looking for a document that mentions both Python and Django, we get back the lists. And now we just walk the lists, and we merge them together. So whenever we find a document that is present in both lists, that is our result. If we wanted to do something like a phrase search, that we're looking only where Python is immediately followed by the word web, all we have to do is add another information into the inverted index. We just need to add offsets. What is the position of this word in the document? And then when we're going through the merging process, we just say we care not only that the document is in both lists, but the offset must be immediately following each other. So Python would be on the position n, and web would be on the position n plus one. So you can see that actually doing a phrase search is not any more expensive than doing a regular search. You're just adding one more comparison, a numerical comparison at that. So it is fairly efficient. What else you can sort of imagine here is I can get the list of documents from anywhere. It doesn't have to come from the same index. So I can have multiple indices. I can have index on every single field in my document. And I can use them all. If I have one condition on the title, one condition on the category, and one on the body, I will just query those three inverted indices to get these posting lists, is what they're called, and merge them together. So we don't have the limitation of many other data stores that we did, the number of indices you can use per query, per collection. And that is also something that we benefit greatly from is this data structure.  That is the primary difference between a search engine and a database. We not only tell you which documents matches your query, but also how well does it match. Is it a good match, or is it just meh? And we know that because we have the information about the statistics. So this is called relevancy. We tell you how relevant the document is to your query. So how is relevancy computed? At the base of it, there are two numbers. Numbers that we call TF and IDF. TF is term frequency. It is just the number of occurrences of that word in the given document, or in the given field. So if I'm looking for Django in a document, so how many times does this document contain the word Django? Is it there only once? Is there three times? And obviously, the higher the number, the better the relevancy. IDF is inverse document frequency, which is just a fancy word of saying how common or rare this word is in your entire dataset. Is this a word that is contained in every single document that you have? Or is this a word that is only present in 1% of your documents? And we can get this information right away from the inverted index, because that essentially the length of the list attached to the field compared to the number of documents that we have overall. It's fairly easy to calculate, and there's actually the exact formula if you're so inclined. And this number has the opposite effect. The more common the word is, the less relevant this document is for the result.  Of course we're going to find it. That doesn't mean anything. So this is sort of the base formula for anything that has to do with relevancy. And it works very well for text. Now, Lucine, the library that does the indexing and the heavy lifting for ASIC search, adds some more stuff on top of it. You can see the exact formula there, and you can see in the middle that that's the TF IDF, the big sum. What it adds on top of it is it takes into account, for example, the length of the field. Because if we find the word Django in the title versus in the body, that also gives us different information, right? If we have a short field and we still find it there, it's more relevant that if we have a full text of the book and we find it there as well. Those are different types of information. So it improves on the basic TF IDF formula, but it's still only relying on the statistics that it learned about your dataset. And sometimes you want to go a little further. Sometimes you have other information about your data. So imagine that you have a QA website where people ask questions and give answers. Let's call it like buffer overflow, I don't know. And you have the users rate the questions and the answers. This is a good question, this is a good answer. And that is an information that you want to take into account.  So if you had one very high quality question that has many, many words, it will always be on top no matter what the people would search for. That's not what you want. You want to take the relevancy and you want to take the popularity and combine those numbers together to get something that you can then sort by. So another use case would be I'm looking for a hotel or I'm looking for a conference for an event and I want it to be in this location. I'm not strictly limited to that location but I would prefer it to be there or around this time. So again we can take the numerical indicator, the distance from our ideal and use that and feed that into the relevancy's mechanism. So this is the theory behind it and this is the practice. This is how it actually looks. This is a fairly simple query in Elasticsearch when we're looking for a hotel. We're looking for a hotel that's called the Grand Hotel and we have several other criteria. We would prefer to have a balcony. We are not limiting ourselves to just hotels and balconies but if it does, like we want to add two to the score. So we want to bump it up. Also we want it to be in central London and we want it to be within one kilometer of the center of London well not center, Greenwich, because you can identify it by the zero in the coordinates. And we want it to be there. We don't want to limit ourselves to hotels that might be so good that they would get to the top even without fulfilling this criteria. So we say that we want to use the sort of the cost function to calculate the score. It's one of the shapes on the image on the right that actually determines how fast the score drops once you get outside of your ideal zone. And we also want to take into account the popularity of the hotel. And then we want to add some random numbers. So random numbers are always good. They make everything so much better. Now in this case, the random numbers are there sort of to shuffle the results a little bit around so that people have chance to discover new things. Because we actually took this from a customer from a real example how they're doing it. And they do have this random score there because otherwise they would have some hotels or some results that would never be hit because they would always be just behind the fold. And also people would perceive the results as stale. But if you shuffle it around a little bit they will always find something new and they will always be excited and hopefully come back to your website. So this is one of the ways how we use the statistics, the TFIDF and all the things that we know about your data. This is the most straightforward way. We use it to calculate relevancy and we allow you to hook into that process yourself. If you are so inclined you can just remove all of this and just say, hey, instead of all these different criteria I just want to use a script and give it an expression in your favorite programming language, whatever that is, even Python. So and do all these calculations yourself. These are essentially just pre-built scripts that we have built so that you can use it and you don't have to expose the scripting functionality because obviously that can have some issues. So this was the first use case, sort of how to get more out of the relevancy that we already have. Another interesting use case we have revolves around reversed search or how we call it the percolator. And it is exactly what it sounds like. It is reverse search.   So what this is useful for is for example, alerting. If you have something like stored search functionality on your website, you have classifieds or something like that and you allow the user to search and then nothing shows up. But the user wants to say, hey, I'm interested in this search, like save it and whenever there is a new item, new document that matches that search, just send me an email and I'll come back. Normally that's a fairly hard problem. With percolator it comes out of the box. You index the query that they're running including all the bells and whistles that elastic search allows you to do. And then when a new document comes in you just ask for it to be percolated and you will get back all the different queries that people have registered that they want to be alerted on. Some people even use it to power something like live search. If you've ever been on any website you're searching and suddenly there is a pop up hey, in the time that you've been looking at these results there are ten new ones. That again can be powered by the percolator. When you do a search and at the same time you register the percolation and every single new document that comes in gets percolated as well and you will know which browser you need to push this document into who is actually looking at the results right now.  I'll talk about my favorite one for percolator and that is classification because there is a bunch of stuff that's super easy to search for but not that easy to do it the other way around. For example, geolocation. It is fairly easy to construct a query that will look for events in Austin. You just have to have the shape of Austin somewhere. You either pass it into the query or that's not optimal. So typically you have an index somewhere in elastic search. In my case I have an index called shapes where I have cities and I also have Austin there. So I say hey, I am interested in anything that falls within the city of Austin and that is a very simple query to run but what if I want to do the opposite? I have a geopoint, I have a set of coordinates and I want to know where they are. What city? What's the address? That's not that trivial unless you have something like this where you have a bunch of queries indexed in your elastic search and then you just show it a document with a geopoint and it will tell you, oh yeah, these queries matched. The one representing North America, the one representing United States, the one representing Texas, the one representing Austin, maybe even the one representing a city block or something so you can really pinpoint down the exact address. At that point it's just a matter of how good data you have and how much CPU you want to burn on this. But it gives you sort of the non-obvious reconstruction of the data. Another interesting one is language classification. This operates on an assumption that every language, and I've chosen Polish because English would be way too weird. Every language has a few words that don't exist in any other language. So the assumption is I can run a query that looks for these words. In this case I give it a list of words and I'm saying I want, if at least four of those are in the document, I consider it a match. So in this case I'm looking for documents that are written in Polish because nobody else, any other language in the world would ever write a word like this. So it's a fairly good indicator. So again, very easy to write the query and once we have the query we can reverse the process and actually ask for which query is matched. So if I then have a document for an event, so I have a DjangoCon US with some Polish description otherwise my demo would fall apart. This is what I get... Sorry about that. This is what I get back. I get back the identifiers of all the queries that actually matched. So I know that this is an event that is in the city of Austin, it is in Polish, and it deals with the topic of Python. Please don't try to look where the coordinates are. They are nowhere near Austin. So this is how you can use percolator for classification.  You have your document, you're about to index it so you run the percolation, you get all the dynamic classifiers, you get all the topics and all the language and the geolocation, you add it to the document and then you index it. So then when you're looking for something in the city of Austin, there's a simple, exact lookup which will obviously be much faster than running the geolookup every single time. And you can take the percolator a little bit further. You can attach metadata to the percolation queries. For example, who requested this percolation?  And other criteria like that. You can also not run all the percolations every single time. You can then use this metadata to filter those, et cetera, et cetera. You can also use it to highlight. So if you want to highlight some passages, that can be a fairly hard problem, but it's a problem that search engines are really good at. So you can ask Elasticsearch to actually highlight some passages for you and then index the already highlighted text. So this has been our journey into the depth of the percolator. And then there is one last big thing that I want to talk about. And that's aggregations. Now many different databases have aggregations. How come a search engine has one too? Well, it all started with something like this. This is an interface you might be familiar with, and it's called a faceted search, or faceted navigation. You type something in, you get the results, then you get the 10 blue links. But you also get on the left side the overview, the overview of what actually matched your query. So in this case, I'm looking for Django, so I immediately can see that Django is closely connected with Python. And I can see how many repositories and how many users have actually matched my query. And that is the huge difference between facets and search. Search is great when you know what you're looking for. If you know how to spell Django or how it sounds or something like that. The facets are great for exploration because you don't need to know, you look and you see. It is one thing to do with code, the other thing is to do it with hotels or books or if you've ever shopped on a website like Amazon, like you can see the categories, you can see the brands, you can see the price distribution, and you can see it. You don't have to read all the results to get that information. So we have taken it one step further with Elastic Search, and we power some analytics based on this stuff. And we visualize it because humans are essentially pattern recognizing machines. You're very good at recognizing patterns. You can probably spot several weird things about this picture, like the gap in the timeline or the fact that the two high charts are completely different. And you can see that immediately. If you wanted a computer to see that, you would have to tell it what to look for or have something very, very sophisticated. But any human can spot this immediately. So that is why facets and aggregations become so important and why we continue to develop them. But this is boring stuff. I don't want to talk about this. This is just counting stuff. Any database can do that. We can do better than that. We are a search engine. We understand your data and we can use it. So let's see how we would actually use Elastic Search and aggregations to do something like recommendations. Let's say that I have a music website and I have different users, and then they like different artists. So I have a document per user and there is a list in that document in that JSON that has all the artists that the users like. So one sort of naive way how to do recommendations is just ask for the aggregation. Just give me a look for people who like the same thing I do and then give me the top 10 popular artists in that group that I have not been exposed to yet. It's easy to write, easy to run, not as useful because popular doesn't mean relevant. Just because everybody listens to one direction doesn't mean it's relevant to my group. So what can we do instead? We need to identify the artists that are more relevant to my group, to the group of people that like the same things that I do compared to the background. So the code looks remarkably different. We replace the word terms with the word significant terms. And that's all there is because now we are essentially telling elastic search, hey, we have this group. We have defined it based on the results of the search. And now give me the stuff that is more relevant for this group compared to all the others. And we can do this. We are the search guys. We understand the data. We have all the statistics. We have all the numbers. You can even see the graphical representation of what's happening on the right side. Normally when you select sort of a random selection, you would expect that there would be the same distribution of people who like something in that group compared to the general populace. So you would expect all the data to be laid out on the diagonal. What this did, what using the significant terms did, it selected all the values that are pretty much on the vertical, which means they are much more liked in my group than they are in the general populace, which is exactly what I was asking for. I was asking for recommendation. Based on the people who are similar to me, give me what I'm more likely to like. Using the data, still using just the dumb statistics about the distribution of the individual values throughout the data set. So no learning was involved. This is actually a fairly simple aggregation that you can run. You can see the code is not that expensive to write. It's not that involved. But this still has some problems. This is an aggregation we've had for a while, but we've noticed that there are some cases where it doesn't work as well as we would like it to. And the one problem is the terms that everybody likes, the term that everybody has. So one direction is my go-to example of this, because everybody likes them, especially around Django cons. And so what do I do there? How do I make sure that I don't suffer from the bias that every single document I have actually likes this? Well, a lot of it is already filtered out by the significant terms, but I can actually do much better. I can also ask for a sample of the documents. So I will not do this analysis on all the users that have something in common with me, but only those that are the most relevant. So I've included relevancy right now at least twice in my query that I'm running. First of all, I'm looking for users that are most similar to me. And most similar means they have the highest relevancy to my query, because let's repeat, the relevancy is based on TF, IDF, norms, et cetera. So what does this translate to? TF, term frequency, it immediately translates to people who likes more things, who have more things in common with me. IDF, inverse document frequency, it means that people who prefer the rare choices that I have, I prefer the people who have like the same thing with me that are rare. I will ignore the one directions because that doesn't bring me anything, but I will actually hang on to the weird groups that nobody else in the world knows about. And then norms, the stuff that Lucina adds on top of it when it takes into account the length of the field. I'll prefer people with shorter lists. That means that people who like pretty much exactly what I like. So not people who like everything in the world because that will not be relevant, not be that relevant. So I can use directly the tools that we've built in the beginning of the talk for text matching. And I can use the same numbers, the same formulas to get the people who are most similar to me. And then I say, and take like top 500 of those, like on every shard because elastic search is distributed so everything happens on a shard level. And then run the significant terms. Tell me what is specific for that group. So we have refined the selection, not anybody who has anything to do with me, but the most relevant people, the most similar people, and then give me what is specific for that group. So this is the sampler aggregation. It is currently in the newest releases of elastic search being ready to release. And these two together allow me to do the recommendations and have it be more relevant and also have it be faster because we are actually looking at the subset of the data. We have just used all the information that we have about the data to identify the most relevant part so we don't lose any precision quite on the contrary. So sort of to generalize what we have done here is in a connected graph when we have people and artists and they like each other, we have identified the connections that are meaningful. Not the ones that are most popular or most common or we have managed to hopefully circumvent sort of the super nodes, the super connected nodes that are the hubs of any of the graphs. And we can use this and go further with it. We can actually use this in a graph algorithm. So imagine that you have an algorithm that's used to calculate the shortest path. So you want to go from point A to point B or in our case, let's model it on Wikipedia, you want to go from a page A to page B and you want to see what are the connections. How do you get from one point to another and still only take into account the relevant connections? Because if you just use a naive graph algorithm, you will fall victim to the super nodes. You will see that, hey, Beatles have concerted in the USA and so has pretty much every other band so there's an immediate connection there and that is not relevant at all. And I don't mean to insult your country but that's just not relevant connection. So when you use this approach to identify only those connections that are relevant that are not just an accident based on statistics that everybody has that connection, then you can get much more interesting information out of this. So you can actually use this to find meaningful connections. After all, aggregation and relevancy, that is how we look in the world. I said earlier that we are a pattern recognizing machines. We look at things and we immediately make assumptions like, hey, this room is not as full as it was in the last talk. Yeah, that makes sense. Like elastic search is not as relevant as pulse grids. I get it. I do. And I can see that immediately. And because I have the context, because I can see I don't have to count all the chairs to know that. So that is the aggregation part. And the relevancy part is if I ask you what is the most popular website, the website that you visit most often? Many people, when I actually ask this at conferences, they'll tell me something like GitHub or Stack Overflow or something. And that is actually not true. They probably spend more time on Facebook or Google or something like that. And it's not that they are ashamed, even though they might be too. They immediately recognize that that is not a relevant answer. That's not interesting. Everybody goes to Google. I'm not interested in that information whatsoever. I know that. You know that. Let's skip to the interesting part.  That is more relevant to our group than to the general public. If I ask on the street what GitHub is, hopefully I won't get punched, but I don't know that. But I will definitely not get the correct answer. So we do the exact same thing. That is what is special about humans compared to computers. So I have a question for you. If I do an aggregation per time period, and then I ask for significant terms on the tags or anything, what do I get back? How do we call that? Anybody's willing to guess? We get the trending information. What's trending? Not what is the most popular for that given time period, but what is more specific for the time period compared to any others. So if we only filter the last five minutes and we ask for significant terms, we get what is currently trending, what are people talking more often right now than in general, than any other time. So something that might appear as sophisticated algorithm, we can replicate it with two lines, with a single query to Elasticsearch. So this is a nice sort of shortcut.  So there is only one other pitfall that I'll warn you about. If you try to play with this. The way aggregations work in Elasticsearch is we take all the possible combinations that might come up and we create a bucket for them, a placeholder. And that can blow up very fast. For example, if you have a dataset from IMDB and you're looking for actors who acted together most often, if you just run this naively, it will work and the query is super simple. But the query will also blow up your memory like crazy because it will essentially do Cartesian product of actors versus actors. So it will be a huge essentially table, a huge data structure that we need to then fill out. What we can do, however, is we can limit one of the dimensions before we get into it. By default, we will try to do everything in one pass over the data because it's the most effective way and because we are a distributed database so we need that for us to function. But in this case, if you really insist, if you know that this will blow up your memory or because you've tried or because you can count, what you can do is you can say do it another way. Do a breadth first search. So first identify the top ten actors and then only find the co-actors of those ten. So just simply identify what is the dimension that you can limit most effectively and do that and then you'll be fine. You can actually ask for all the information in the world and we will give you a tiny, tiny, tiny little sliver of that. So remember, information is power. We have the information. We have information about your data and we can use them. That is the one leg up that we as a search engine have over the more traditional data source who are limited to the boring kind of stuff, filtering, counting stuff. It can be useful, but it's not exciting. If you want exciting, use Elasticsearch. Thank you very much. If you have any questions. So we have five minutes for questions if anyone has any questions. Yeah, great presentation. Question about language detection. Have you tried to use language detection within Elasticsearch in a production environment? No. So what I typically recommend when people deal with multiple languages is just use everything at the same time. The problem with language detection typically is that even if you can detect the language of the source, you have enough information to go on there and you can do it. You can identify the language of the document. It's very hard to identify the language of the query because if somebody just types in two words, it's very hard to say what language they are. So what I typically recommend people is if you know that you're going to be dealing with these five languages, analyze everything five ways. Analyze it as English, as Czech, as German, as Japanese, and then do the same for the query. When a query comes in, query all of these fields at once. And Elasticsearch has tools to allow you that. You can specify that I have this one field, but I want to analyze it in multiple ways. And then I have this query and I want to run it against all these differently analyzed fields. So it's what I call the shotgun approach. Just throw everything in there and see what sticks. Because of how the relevancy works and how different relevancies from different queries are combined, without trying so hard to actually think about the problem, you will actually get the most relevant results. Does it make sense? I may have missed it, but is the vector space model still a common way of combining information from different query terms, or are there more sophisticated methods that are now... Yes, it's still the same thing. I talk about TFIDF and everything, but that's only to give weight to the individual parts of the vector. But overall, it's still essentially, we're talking about vector metrics and vector distance. By default, essentially what I showed, the formula, that's actually a cosine metric, pretty much. There are some modifications and stuff, but yes, it's still based on that. Thank you very much for having me.


Hey guys, thanks for watching. That was a short one today. I'll see you next week in my Tai Chi on Sundays and Chigo Meditation It's Sunday Tai Chi with David Wong Once again, we're gonna do a little warm-up Some Chigo exercises breathing and movements, then we're gonna do the 24 move form You have questions Put them in the comments Hey guys, so that was the warm-up and then now we're gonna do the form Tell me what you guys want to learn.  Hey guys, yeah, I don't know why it's laggy probably internet connection I thought I'm gonna show you how to do Something very therapeutic with your dog. We have a dog So in Tai Chi there's a practice called Tai Chi walking so You can do Tai Chi walking with your dog like this. So that's Tai Chi walking for the whores and backwards Also do Bagua walking So you have a point in the center Usually you walk around the tree. Let's walk along anything All right, so that's my Tai Chi Sundays at Chigo Meditation David Wong and Moko. I hope you guys enjoyed this session And if you wanted to join me I'm doing Tuesday nights workouts doing JKD, Wing Chun and boxing, heavy bag and basically doing aerobics punching training Or getting in shape and losing weight and technique So joining me Tuesday nights for that and see you next week Sunday for more Tai Chi A good one use the Chi and Hey guys, so that was the warm-up. Now it's time for the 24 move form Hey guys, thanks for watching. So that was the Qigong Tai Chi warm-up sequence and the 24 Tai Chi form So you want to learn more? Just ask in the comments Give me your questions your comments suggestions what you want to see and Use the Chi to prosper. I'll see you next time. Hey guys. Thanks for watching If you stayed up to this point, that was the warm-up. So let's do the form. So that was the 24 move form for Tai Chi If you have any questions, make it in the comments Make sure you like subscribe and follow this channel I'll see you soon in the next session Hey guys, thanks for watching. That was a short one today I'll see you next week in my Tai Chi on Sundays and Chigo Meditation It's Sunday Tai Chi with David Wong. Once again, we're gonna do a little warm-up Some Chigo exercises breathing and movements Then we're gonna do the 24 move form You have questions Put them in the comments Hey guys, so that was the warm-up and then now we're gonna do the form Tell me what you guys want to learn.  Probably internet connection I'm gonna show you how to do Something very therapeutic with your dog. You have a dog So in Tai Chi, there's a practice called Tai Chi walking so You can do Tai Chi walking with your dog like this. So that's Tai Chi walking put a horse in backwards Also do Bagua walking So you have a point in the center Usually you walk around the tree. Let's walk around anything All right, so that's my Tai Chi Sundays at Chigo Meditation David Wong and Moko. We guys enjoyed this session And if you wanted to join me, I'm doing Tuesday nights workouts doing JKD Wing Chun and boxing heavy bag and basically doing aerobics punching training Or getting in shape and losing weight and technique So joining me on Tuesday nights for that and See you next week Sunday for more Tai Chi A good one Use the Chi and possible Hey guys, so that was the warm-up. Now it's time for the 24 move form Hey guys, thanks for watching. So that was the Qigong Tai Chi warm-up sequence and the 24 Tai Chi form So you want to learn more? Just ask in the comments Give me your questions your comments suggestions what you want to see and Use the Chi to prosper. I'll see you next time Hey guys, thanks for watching. If you stayed up to this point, that was the warm-up So let's do the form. So that was the 24 move form for Tai Chi If you have any questions, make it in the comments Make sure you like subscribe and Follow this channel. I'll see you soon in the next session Hey guys, thanks for watching. That was a short one today I'll see you next week in my Tai Chi on Sundays and Qigong meditation Sunday Tai Chi with David Wong Once again, we're gonna do a little warm-up Some Qigong exercises breathing and movements and we're gonna do the 24 move form You have questions put them in the comments You guys so that was the warm-up and then now we're gonna do the form Tell me what you guys want to learn.  I Told I'm gonna show you how to do Something very therapeutic with your dog. We have a dog So in Tai Chi, there's a practice called Tai Chi walking so You can do Tai Chi walking with your dog like this So that's Tai Chi walking for the horse and backwards Also do Bagua walking So you have a point in the center Usually you walk around the tree. Let's walk along anything All right, so that's my Tai Chi Sundays Qigong meditation They belong in Moko and you guys enjoyed the session and if you wanted to join me I'm doing Tuesday nights workouts doing JKD Wing Chun and boxing heavy bag and basically doing aerobics punching training Or getting in shape and losing weight and technique so joining me to a Tuesday nights for that and See you next week Sunday for more Tai Chi Have a good one use the Chi and Prostate. Hey guys, so that was the warm-up now. It's time for the 24 move form Hey guys, thanks for watching. So that was the Qigong Tai Chi warm-up sequence and the 24 Tai Chi form So you want to learn more? Just Ask in the comments Give me your questions your comments suggestions what you want to see and Use the Chi to prosper. I'll see you next time Hey guys, thanks for watching. If you stayed up to this point. That was the warm-up. So let's do the form So that was the 24 move form Tai Chi You have any questions? Make it in the comments Make sure you like subscribe and Follow this channel I'll see you soon in the next session Hey guys, thanks for watching. That was a short one today See you next week in my Tai Chi on Sundays and Qigong meditation Sunday Tai Chi with David Wong Once again, we're gonna do a little warm-up Some Qigong exercises breathing and movements Then we're gonna do the 24 move form You have questions? Put them in the comments Hey guys, so that was the warm-up and then now we're gonna do the form Tell me what you guys want to learn you like you guys like this Tai Chi sessions on Sundays You guys Yeah, I don't know why it's laggy probably internet connection I'm gonna show you how to do Something very therapeutic with your dog if you have a dog So in Tai Chi there's a practice called Tai Chi walking so You can do Tai Chi walking with your dog like this. So that's Tai Chi walking forwards and backwards You also do Bagua walking So you have a point in the center Usually you walk around the tree Let's walk along anything All right, so that's my Tai Chi Sundays the Qigong meditation David Wong and Moko you guys enjoyed the session And if you wanted to join me, I'm doing Tuesday nights workouts doing JKD, Wing Chun and boxing heavy bag and basically doing aerobics punching training Or getting in shape and losing weight and technique So joining me to a Tuesday nights for that and see you next week Sunday for more Tai Chi A good one use the Chi and Hey guys, so that was the warm-up now. It's time for the 24 move form Hey guys, thanks for watching. So that was the Qigong Tai Chi warm-up sequence and the 24 Tai Chi form So you want to learn more? Just ask in the comments Give me your questions your comments suggestions what you want to see and Use the Chi to prosper. I'll see you next time. Hey guys. Thanks for watching If you stayed up to this point, that was the warm-up. So let's do the form. So that was the 24 move form for Tai Chi If you have any questions, make it in the comments make sure you like subscribe and Follow this channel. I'll see you soon in the next session Hey guys, thanks for watching. That was a short one today I'll see you next week in my Tai Chi on Sundays and Qigong meditation It's Sunday Tai Chi with David Wong. Once again, we're gonna do a warm-up Some Qigong exercises breathing and movements, then we're gonna do the 24 move form You have questions Put them in the comments Hey guys, so that was the warm-up and then now we're gonna do the form Tell me what you guys want to learn.  Hey guys Yeah, I don't know why it's laggy. Probably internet connection I'm gonna show you how to do Something very therapeutic with your dog. We have a dog So in Tai Chi there's a practice called Tai Chi walking so You can do Tai Chi walking with your dog like this. So that's Tai Chi walking for the hoars and backwards You also do Bagua walking So you have a point in the center Usually you walk around the tree Just walk around anything All right, so that's my Tai Chi Sundays the Qigong meditation David Wong and Moko You guys enjoyed the session And if you wanted to join me I'm doing Tuesday nights workouts doing JKD, Wing Chun and boxing doing heavy bag and um basically doing aerobics punching training Or getting in shape and losing weight and technique So joining me Tuesday nights for that And see you next week Sunday for more Tai Chi A good one use the chi and pros


Yes, Mr. President, it's a great pleasure to have this good to see you, one of my warmest regards to Prime Minister Charles, where she's asked me to pass on her warmest greetings to you. Thank you. And Mrs. Benjamin? Mr. President, I'm from the meeting. And they're children. This is the son of Donald Sander. Donald Sander. Donald is the only American in our international family. Good morning. Yes, I really appreciate very much my stabilizing Caribbean regard for you. Well, I'm sure it's very, very mutual. I know this. As a matter of fact, when I come here, I don't say I'm the ambassador. I'm the ambassador for Palmyka. I say I'm Mrs. Charles's ambassador. Mr. President, you and I will work in another fireplace for a photo. Yes. And then the family will come in. Wonderful. Mr. President, it's a great pleasure, particularly for us, but it's all that because we signed on as this PhD as coming up in California. We're going to say hello, nice to meet the Governor of California, who signed my doctorate certificate from Jerusalem. Yes.  It becomes a small world, Mr. President. All right. Well, thank you all very much. Thank you. President, the Ambassador of Pakistan. Mr. Ambassador, happy birthday. Very, very happy, Mr. President. And Mrs. Martin. Hello there. Nice to see you. And their daughter, Charles. Hello. Nice to see you. Thank you. You and I will go over in front of the fireplace for a photo, and then you will come in. Thank you. The relationship we have with your country there, or what we're doing. I think we're neighbors. We, I think, share one of your goals, and also one of the improved relations in India and Pakistan. We have one here. Better go put it that direction. Do it off to this week. We'll be right back. See you soon. We'll stop. Thanks for putting your picture this way. Mr. President, the Ambassador Courtney Bois. Yes. Mr. Ambassador. Nice to see you, Mr. President. Nice to see you. Your view. You have the best greeting of President Félix Souffais-Boignet. Good to see you. Please return my regards to him. And I'm very happy to know you're representing one of the world's great statesmen. Thank you very much, Mr. President. This is my wife, Fatima. We met him in California, and we got married in Washington. She's from Guinea. This is my first daughter who was born here in Washington, and she's 20, C.B. Second woman. And you? And you? And you? And you? And you? Mr. President. Mr. President. Mr. President. Mr. President. Mr. President. Mr. President. Mr. President. You and I have both been in a picture together. I was like my father. I was very proud of you. Now, Fatima. I think we'll put your wife and my daughters between us. It'll make a prettier picture. Okay. I thought the two names were right in front. Maria. Salah. Thank you, Mr. President, for telling California's. Thank you very much for going there today. You're lucky because it's very cool here. I'm hoping you'll be very nice there. It's good to see you all. I know we'll see each other again. Thank you very much, Mr. President. Thank you very much. Thank you very much. President, the Ambassador of Thailand. Mr. Ambassador. How do you do, sir? Good to see you. Is this your pool? Hello, there. Is it the daughters? Hello, hello. Inside. Inside. Hello. Well, you're most grateful for the warm hospitality shown to my wife when she was there recently. I appreciate the way we're working together on this entire problem of drugs. It's a great honor to have you, you know, kind of well-used, very pleased with this.  And I think all the world is grateful to you for all the help that your country has done with the refugees. Well, we've hoped to do. I was there once a number of years ago, where did you have a term? Did you just take a black bottle? Do you have a cup of that at the time? Well, perhaps, yes, yes. Won't you all come in now? I think the ladies are in between us here. As a matter of fact, after that trip of ours out there, if you say a meeting with your father at our ranch in California, down in the edge of the pond, stands a spirit house. That's right. We bought one when we were there. We enjoyed up the cons, and then they came back and it stands there in our ranch. Yes. So it's kept us safe. Well, it was welcome to bring it on to us. Yes, why yes? President, the Ambassador Library. Yes, Madam Ambassador. Mr. President, it's great to see you. And welcome you back. It's a pleasure and a perfect thank you. President, the daughter, I need to assist her. Nice to meet you. Brand daughter. Hello there. Nice to meet you. Another daughter? Hello. Well, you and I were over at some of the fireplace for a photo, and then they were walking and enjoying it. All the ladies are in the middle of, if you and I get out, it'll be a prettier picture. If you get at the other end of the island, it's okay. Thank you very much. I'm very happy to be here. Well, happy to have you here. We know what's going forward in your country with regard to democracy and all of it. I want to please them. I hope any way we can be of help. Thank you. Thank you very much. Thank you very much. I'll ask you all the best. I can take care of that. What do you want to do on now? H-A-D-J-A. That's a misspelling there. H-A-D-J-A. Correct? H-A-D-J-A. That's our White House camera. Oh. Yes. A safety stirrup. Something like that. President, the Ambassador Morocco. Yes, Mr. Ambassador. Yes, Mr. Ambassador. Yes. Thank you very much. Your Majesty, you have all these friends.  He was more hearted than with you. He will transmit his friends and all his affection to you. Thank you very much. Well, please return my thanks to him for that in my very warmest regards. We are in the same room. And looking forward to his visit next year and celebrating the bicentennial of the Treaty of Friendship in our two countries. We will be very happy, Mr. President, to be bicentenary on this anniversary under your auspices, under the auspices of His Majesty the King.  You have a pressure for that one. And Mrs. St. Burson?  I'm going to go over, and I'm going to let them be called up with a big scissor. Not even much. James, though, is an welcome place to have you here. Nice to see you and to have you here. I was saying we were most grateful for the warmth, hospitality, and we didn't give you much time to get ready for us. I think Dr. Fortsmith, no way. We didn't have a worry so long about the preparation. Well, fine. Everything was wonderful. All right. Well, welcome. Please have you here.