 Yeah, so we get them hanging. Do you like the settings feature problem that I have? We should keep on solving different databases, because that's why I'm wondering... Maybe my database is sloppy. I checked settings feature, maybe I did something stupid, because I saw there was like a database instruction twice. Also, for now it seems to be fine, but I only have like 50 sites where people can work on, if we manage to get them all up and running. So if there's more than 50 people on the computer, please like get together so we can make progress. You think you will be able to find it? If you can, yeah, sure. There's like numbers, yeah. All right, so this is 15, false or false? Do you connect all these or...? So most of them have certain 15, which we might have been, it's there. Maybe we need to just take it out? Yes. Because the port is different, it might be like that it overrides or I don't know. Okay. Yeah, so it's really full, I think so. Yeah, so 15 work. Okay, try like 5 and 6. I have issues with 6. Yeah. Maybe even my SQL, that it doesn't allow like many connections or something. Yeah, could be that also. Once you're in, you're in, and that's just fine. For people that just joined, this is the link where you have to go to. There's instructions on how to get started. We're working with a learning system so that even if you cannot follow with the slides, you still can follow on your screen on your own pace. So let me know if you've done this. It's pretty easy. So you go to this link, search dng, or the link that I had in my presentation. I don't know if everyone copied it. Please tell me if you didn't. So everyone has this link, at least, for that link? Ah, yes, that's true. He's busy with that. We'll get there, but that's a little further in the lesson, yes. We have some user problems. Okay. So before I introduce you to how to get started, I want to say hi. My name is... Can everyone hear me? Yeah. My name is Nick Vinoff. That's Peter Wallen. That's Martin. He also will be your help in this lab. I'm not able to pronounce his last name. No worries. I broke it down. Heard about a portion of something, yeah. Heard about a portion? Very close. Okay. We're here to create an optimal search experience. So this lab is for people that don't have a lot of experience in configuring search pages. We will work with Solar. I'll explain what that is later on. But we're not going to go in code. We're not programming. We're going to create search pages. We're going to create facets. Don't worry if you don't know what that is. That's actually great. And basically you want to make your client happy. How many of you, like I suppose, most of you are site builders? Is that a correct assumption? Who is not? And what do you expect from this lab? Okay. Okay. So it's still technical. But even if you're not technical, you should be able to follow this, maybe sit together with someone else next to a computer. Or watch a screen. I'll be doing the same demos or training that you will be doing. So again, this is the link. I will be repeating this link in all the slides. So it's not just the only time you will see this. And we first have to know what we're searching for. So most of you work for clients, I suppose, or for yourself. And your data structures are always very, very different. Drupal allows you to go very, very broad in, okay, I have content types and have fields. But then, like, how do you navigate through content? If your content exceeds 10,000 items, maybe 100,000, a million, you cannot put all those links in the menu anymore. So you need search. And Google might be able to help you, like, crawl your website. Maybe it's an intranet. Maybe it's an internal website. Maybe Google doesn't understand your site. So you need a way to allow users to navigate your content and to find what they're looking for. And Drupal 7, which is the version we're going to talk about today, I don't think it makes sense to talk about Drupal 8 yet if we want to deploy a website tomorrow, comes with Core Search. How many of you have enabled that or have experienced with the Core Search module and actually, like, tested it? That's less, right? Like, you enable it and you hope it's all fine. And you hope that users type in something and they find what they want. So before we actually go to, like, some demos and actual labs, I want to explain to you how Drupal and search indexes and how this process works because it's the same if you're using Core Search or the Solar Modules or any of the other search modules. So there's a cron process which I assume you all know that you have to set up and maybe it runs, like, every 30 minutes and it does some indexing process. During this indexing process, it takes 50, maybe 100, maybe 150 nodes. You can set this up. It's a config. And it loops through all these entities. So not necessarily nodes, but Core Search only works with nodes or some user search as well. And then it, okay, so you have your entity. It takes it. It renders it. And you have some pure HTML output. And in Core Search, there's some basic stemming. And stemming means that you, like, remove these accents or I'll explain that more in detail later. But there's also some small, smart part that says, oh, my titles are actually more important. H1 has some scoring. H2 has some scoring. So it tries to analyze that. You can imagine if PHP has to do that, PHP is a very powerful language, but it's probably not the best language to analyze text. Core Search also does this accent removal if someone types in a word in your search. Maybe here in check it's different, but most of the times you don't put accents. I don't know. Is there any check person here in the room? Do you type in accents in Google? Okay, so you want to remove them before it gets into your index. Stemming is like a big concept. You have to understand if you're searching. Imagine there's a verb and you know all from in your primary grade or secondary school that you can conjugate these verbs, right? Or words can be maybe attached to each other. So you want to always go back to the base form of your verb to put that into your index. And you have to do the same whenever you're searching for that word. You have to understand, okay, this is a word. I'm going back to the base form so that that base form matches the base form in your index. Do you understand that concept? Core Search does this a little bit. It's not really, really okay because we have some problems with MySQL. MySQL is not a full-text search engine. So I don't know if you ever tried to have like 10,000, 100,000 items. How big are your sites? Give me some estimation on the largest site. 3,000, someone has worked with more than 20,000. 1.8 million, that's a perfect example. 1.8 million entities? No records, but there's like full of text. All right, so XML, text that you want to like search somewhere in that block. In MySQL, you have the operator percentage which you might have used if you want to find something. And it really has to like scan everything. And it will take ages and maybe your MySQL or whatever a SQL version you use will crash. Do you try that? Right, so it's not optimized for big, big websites nor does it have mathematical ways to understand your language. There's some other problems. It has limited operators. So you cannot do like AND or OR or PLUS. It doesn't really understand that fully. And lastly, there's a dead-end which is the worst thing that can ever happen to your website. A user goes there, it types in something and nothing appears. It's an empty page. Like what do you do as a user of the Internet? It's kind of easy, you just leave. It's the end as you can see, right? So we have to solve this. Please don't turn off your computer and go outside. So I'm going to give you a small demo of Core Search. And please, in the meantime, register on that system. Let us know if it doesn't work. Martin should be able to help you a bit. And maybe also just to give you a little sneak peek of what we're going to do, I'll show you by the end of these two hours what you should have on your computer if everything works out. So this is a website which is a demo site that you will get soon. And there's a bunch of cities in there and there's some blogs. And we want to navigate through these cities by maybe going by country, by type, so city and article, by date, similar to Google. You can go last week, last month, maybe last year. And we want to also do some cool thing. We want to filter by a population of the city. And you say, give me all the big cities. And you should be able to get these big cities, which is impossible with MySQL Search, because it doesn't understand these concepts of separate data things. I filter by a country name. And have a map and have it all nicely done. But your first view, if you enable Core Search, is this. I don't know what city you're like. I know I want to go to Andorra. And then the only thing I see is JavaScript is required to view this map. It's not really useful, right? I don't see where Andorra is. I do get a lot of country Andorra, but there's no, like, can you compare that to what you saw before? It's not really nice. However, it works. Search works. But if you scale up, as I said, it might be a little hard. And I just want to show you some of the settings you can do with Core Search. If you don't have the ability to go to a more powerful system, there are some ways to improve it. So you can put indexing settings, the minimum word length, to index. If you set the setting a little bigger, your MySQL index will be smaller, and it might be faster. So if it's too small, you don't have the resources to go to Solar, you should be able to have, like, a little optimization there. But otherwise, the only really thing you can do is to say, okay, if I have more comments, please put that thingy on the top. So there's some changes you can make, but it's not really flexible. I think the comments one is even broken, Core. So, okay, don't use that one. You can use it. I think it doesn't actually work in People7, correct me? Okay. So there are some alternatives, and I think most of you are here to learn maybe a bit about Solar. Is that a correct assumption? Otherwise, I would speak two hours about Core Search, right? No? Okay. But before we dive into that, there are some alternatives, and this is like going beyond the Drupal ecosystem. You could use Google Custom Search, which is free and it crawls your site, but still Google doesn't have an understanding of your data types. It doesn't have any understanding of population as we saw before. You could buy a really big yellow box for a lot of, a lot of money. It might work. Some really big clients apparently are very happy. And then there's some open source software, like Elasticsearch and Solar. And in the Drupal ecosystem, there is a lot more support for the Solar module. However, Elasticsearch is a very powerful tool. If you're building your own application, it might be worth looking at. But for now, we're going to use Solar because that's where Drupal is really strong in. What is Solar? You do have to understand this. It's probably the most technical slides I will have. It's written in Java and it runs on any Java container, which could be Tomcat or Jetty. And it does a lot of mathematical algorithms to understand your text and to understand how to search your full text. It has understanding for a lot of languages, like English for sure, Dutch, which is very different. I don't know if you understand the difference between English and a Germanic language. Ever thought about that? In German or in Dutch, you can concatenate words and you can make a word this big. I love my language. But how does your computer understand that these words are actually not in the dictionary? So there's like a really interesting problem to solve and Solar, unlike the code that we have in Drupal, is a little better in understanding that. It comes with replication. The latest version of Solar is 4.5 and that comes with Solar Cloud. If you want to know more about that, please come to me or whenever we're getting started, I'd be happy to give you more explanation. And there's also multiple indexes. So on the server that we have running, we have one Solar installation with 50 cores. So you only have one Java container, one garbage collection thing, and multiple indexes. And this is semi-optimally how you want to run it. So there's like a web server, a separate server for your database, and a separate server for your search index for Solar. Ideally, this is even bigger where you have maybe two web servers, two MySQL servers and two Solar servers in a master's lathe replication or however you want to get it multi-tenant. Please separate them if you have the resources. Imagine a use case where you install that all on one server and you're re-indexing your site. All your users maybe also want to access your site at that specific moment, and the whole server is busy parsing your text, adding stuff into your database. Your site will probably be very slow or fail. So please don't do that. Sure. So the hardest part is Drupal, because it has to render your entities into HTML. What makes the indexing? Yes, so that's what I'm saying. When it's indexing, you do your cron, or if you do it manually, the hardest part or the most intensive part is in the Drupal site, because you have to go from an array of structured data to a blob of text with fields and joins and everything you do in custom code to get an output of HTML, and that part is the most intensive thing. And then you want to send that HTML or text or whatever to Solar, and then Solar does this thing. We've never been able to max out Solar in updates. So the question was, if you have these things on the same server in VMware or it doesn't really matter how, if you're indexing your content, what is the most intensive utilization? Is Solar taking more resources or is Drupal taking more resources? And the answer was that Drupal is taking more resources because it has to render all your content to send them to Solar. And it's still PHP. It's still a scripting language, so it's not always very optimized to do a lot of calculations. So if you do VMs, make sure your VMs have resources that are split. Yes. Or what you can do. Yeah, you could do this or even if you're indexing stuff into Solar and this gets a little complex, I'm not sure if I want to go there yet, but for example, Acquia Search, we have a master and a slave, and most of the selects go to the slave because whenever you're updating or mass updating, Solar is still a bit busy. It's not doing anything. And you want searches to return quickly. And when it's indexing, it's kind of busy. So you want to separate out your selects from your updates most of the times. So one last step before we can, like, dive in because it's a kind of understanding. Peter and I are the maintainers of the Apache Solar Search integration set, and maybe some of you have been to the Search API session yesterday. These are two, like, different set of modules. Today we're going to focus on the Search integration set and if you have questions about the differences between the two, because there are some, I'd be happy to answer them, but that's not the point of this lab. Maybe that's like, it depends on the use case, and for now we're going to focus on this. Most of the concepts you learn here are also applicable to the other suite. Then there's three other concepts you have to understand where you can make a difference, which is the index itself, like how you get stuff in the index and how it's actually stored in the index. The other part to understand is the query. Like, what are you going to do with the text of your users? How are you going to parse this to then send to your index? Because that depends on how your index is configured and then how to improve the results. So we'll touch all of these, but then using modules and just UI interfaces. And now we are getting set up. I don't know if... Okay. It's like you have to load each one twice to get it for some reason. So are some of you able to access that training website? Does everyone have a number or have a clue what to do right now? Please raise your hand if you have no clue. All right, Martin, could you hand out more numbers? Yeah. So who doesn't have a number? So again, for the people that joined in a little late, we're using a learning system where all the instructions that I'm showing here or all the demos that I'm doing here are also on that system, so you can read on your own pace. Please register on that course. Yes. Restoration will be closed after today. But you can send us an email. I can open it up again. And then normally, if you follow that little guide, so I'll... Like, everyone has the URL? Who doesn't have the URL? Here, it's in the bottom. Please go there. Please tell me if you have the URL. Like, did you go, like, through all the 50 things? I don't think they need to be edited. This one will work. It seems to work. All right. Should I ever write it? It's just, yeah, it's funny that... Well, I'm happy you were able to... So everyone has that URL open on their browser. That's probably the only Internet thing that we're going to do. The rest is local on that machine that Peter is sitting in front of, because yesterday or two days ago, the Internet went down and we cannot really rely on the Internet. So once you are logged in, are you all logged in? Who is not registered or logged in yet? Do you have a number? You should get a number from Martin there in the back. Belgian folks need the number there in the back, although I think they know what to do, though. Well, you never know. Can you give me an estimate on how many people actually see this page? All right, so if you see a neighbor that doesn't see this page yet, please help out. Otherwise, we might lose the pace of this course. And normally, you click on complete it. Let's continue. Here it has the URL of your training site. This URL, you can go there and replace the number with the number on the card. It's like a lottery, right? And let us know if it doesn't work. I don't hear any screaming, so that seems to be fine. Perfect. Are there any questions so far? Like, this at the beginning might be a little slow, but once we're up and running, I did this course before in Washington where I had to ask people to download a tarball and install it on their local computer and we lost, like, an hour and a half. So it's the first time I'm not allowing you to install anything because we don't have the time. Who sees the training website in front of them with their number? Seems to be a reasonable amount. Who has problems? No one with issues? Wow. Sure. That's fine. You shouldn't do core search. I don't know what's happening there, but I don't really care about core search. So if you have that learning system and you joined a little late, like we did describe everything that was on the slides as well, you can check this later at home if you want to. And there's some links and references about differences between, for example, Sol and Asic Search for people that want to know more. Okay. So I'm going to follow with you. I'm going to disable all my modules. Give me one second. For those that are a little versed in it, there is also an instruction there on how to connect to the Sol server that's on that server. It should be the same IP with port 8, 9, 8, 3, slash the name of your site, which is search training 01 or 50, or something in between. I will show you in a second once I have all these modules disabled. Okay. A username is admin, admin, if you got on your website. That's almost everything. Don't look at my screen for a second, if you can. I know it's hard. There's a really big screen for you there. All right. So, in theory, most of you should be able to navigate here, which is an administration, configuration, Apache Solar Search, if it's enabled. It's the first enable, the Apache Solar... Not everything, no. Please don't do that. So... Probably... I'll show you which one to enable. So, there's only one, or two modules, sorry, that you have to enable, which is the Apache Solar Framework. Can you all see the screen? Is it big enough? Should be what? Is the text big enough? I mean, I could do like this. I'm not sure that's actually usable. No, we need Drupal 8 for that. So, Apache Solar Framework is the one you enable, and then there's another one. It's called Apache Solar Search. That's also described normally in that learning system, if you're following that one. Okay? So, if we go to configuration, search a metadata, Apache Solar Search, you shouldn't be able to see this yet, it's because I pre-configured. Then you should be able to see a server in red. Some of you see that? Sorry? What's the error? Is there like another module that might be enabled still? Maybe I forgot something. No? That could be. Hold on for a second. There's one user. I'm not running from this server. I'm going to do that. All right, so if you have the PDF error, hold on. I forgot to give you write access and create tables. Is there a dump to reload? For what? Yeah, well. So give us one second, we have some MySQL issue where if you enable the module it tries to create a table and we didn't give you create access. Could you give your number? The ones that have problems? Come to the front with your number. You'll get another one. Okay. Where? Hold on. He did something. So hold on. So if you enable those two modules, check your modules table again. I think he disabled them. Or not yet. All right. Then I'll explain you what comes with Solr if we have solved this problem. So whenever we can continue and Peter will tell me, these are the big differences, for example, between Core Search and Effective Solr, there is like a really nice display on what's in your index, what version you're running, et cetera. And there's some buttons to re-index everything, to re-queue everything. So management of your whole search index is a bit different. It comes with valve checking. Just like Google, if you type something and you maybe made a typo, it will correct you. For example, historic urban market. It actually knows that you mean historical urban market, because apparently there's some city with an urban market. You have many more options to actually tweak your results, as in the sense that you can say, okay, that content type should be more important than that other content type. You can really more granularly say, okay, I have a taxonomy term, and that taxonomy, if they search for that, and that entity has that taxonomy term, that has to go to the top, or at least it has to be valued much more, because you cannot really say that one has to go to the top. You could, but that's a little bit more complex. And then a feature that a lot of people, even the ones that actually installed Solr before, I don't know how many of you actually have done this before. How many of you know about the More Like This feature? It's like two hands. More like this, three, four hands, more or less. Yeah, more like this. So More Like This is a block that comes default with the suite, and what it does is if you enable that, and you put it somewhere in the site, or wherever you want, and you're viewing an entity, like mostly a node, it will analyze that node, because it knows it's in the index, and it will compare that with everything else, and check what is similar. So most of the websites I've seen that don't know about this feature do it like this. They have a node queue, and they have a ton of content editors. And those content editors are responsible for adding links that are related to that one node. I don't think that's very maintainable. It gets out of date really quickly. Maybe you could do that for some specific things, but if you have a million entities, please don't do that. So More Like This analyzes it, and it shows it in a little block. This is related. Did everyone fail enabling, or some people have worked? Did it fail? Did some people work to enable the modules? No, he didn't enable the UI. But now he had the error. Okay, so everyone had the error? Okay, so just no one enabled it until we got through and clear out, because people otherwise... Are you doing it now? Do it now, so yeah. Hopefully too much will have it fixed. And then you can start playing with all these cool things. Also comes with some sorting. It might seem very silly. It's very useful. And there's some modules that we'll have soon to switch out some of these. Yes? So anything that's in your index, it probably works like that. Sorry? The question was more like an addendum, and he mentioned that if you have files, but I didn't really explain you that you can index files yet, but you can. It will also show related files, but you can index files. So I don't think that's an exercise, so it might be interesting to show you. So here with pages and blocks, let me close this. So these are the search pages that if you enable it, you come with like one core search page, which is a replacement of core search, but then with solar. Some taxonomy page that replaces the taxonomy term. And then in the bottom, there's a more like this block. You can add as many blocks as you want with different configuration options, which was one of the questions. What are those configuration options? And here you can say, okay, look, if I'm viewing an entity, what should be used to actually mention like how it is related? Maybe you only want to add relations through taxonomy terms. And then you can say, okay, look, all my taxonomy term names, if that other entity has them as well, they're related. You can also just do full text on other full texts, and then that's related. So there's some things you can do, and you can even say like the minimum frequency of a term if that reoccurs in your other entity, maybe like forest, and forest appears three times a one other entity. That one is more related than one that just has one time forest. Does that make sense? Okay. Peter says it's fixed, so if you want to try to enable the module, maybe not all at once, but just one person maybe. That's number seven. Please enable the modules. So it's just to go there again. So this one, the framework, if you enable that one, and then a Petri Solar Search. It worked. It's loading. Is it okay if I take that question in the end? Because it might be a little too even advanced if we didn't start on the normal indexing flow, etc. Sure. And I can come to you once everyone is busy with all of this stuff. It works. So please go to your website, and if you want to bomb the server, like three, two, one. Oh, so... You okay? Frost is also an exercise to see if we can do it for like 50 people. There's always some trouble, I guess. At least you don't have to install Drupal. Sorry? Yeah. I guess we would have like not been here yet. So please tell me if you're able to see this settings page, if it actually like loaded. Who can actually access this pot? So search and metadata configuration, search and metadata solar? Or are we still waiting? Yes, yes. Yes, that's good. Are we there more or less? Are people still waiting? There are others that have read. The other ones will go there. It's admin config search, solar, Apache solar settings. And there should be one red server. Going to localhost8983 slash solar. Right? Right? Okay. So you go to edit, and in the server URL, you paste the IP that you see from your browser, and you know what it is. It's not... I think I have it here somewhere. Well, the one on top of your browser. That port, 8983 slash solar slash search training, and then the number of your little card. So... I'll try it. Let me see. Could someone give me the IP? Because I don't know it. Connects with it. Okay. So I'm going to follow this with you. So you should be able to do something like this. Is everyone able? It's also in that learning system, so if you're not following, please do so later on. And we can actually save and edit. You can even click on test connection, and it should be saying, your site has contacted the solar server. If you then go to default index, local host server, like 00, and your core name should be search training with the number. Is anyone able to see that yet? Busy? And if you then go to settings, it should be green. For those that are not following, you have a number. For example, 45. Add it to the end of this string. So that's your that's your personal solar index. You have 80 to 83. Alright, so I'll make it a little bigger. If you have any issues, please raise your hand. Martin will come by. I'm going to continue. So how many people did we lose already? Not that many yet? Oh, so. Alright, so I will show you part of the training and then you can do it yourself. But basically you go to this default index tab. And in the bottom you see a configuration page or configuration tab. You can select article and city. There's no such thing as basic page, I think indexed or like no content, so you don't have to select it. And then you can save. And just in my case because I did something weird, I'm going to queue everything for re-indexing. So that little button if it's the same for you, you can queue everything to be re-indexed. And then you can click on index all queued content. And this I'm a little nervous if we're all going to send stuff to solar. And then you should see something like this. It's a batch process which is also not present in search core. It's going to prepare to submit content and it should submit it like 200 by 200. What you could do instead of doing this, you can click that button on the top which just sends 200 items. Try that once, see if that works. 200 should be more than sufficient to actually finish the training course. If you can do 400 or 800, good for me. So you can see it's sending stuff. I'm going to stop this because actually I know I have stuff in the index. So what I don't want you to do is to explore that admin interface and see what you can do with these pages and try to understand what all these config options are. There's not that many. You shouldn't be too confused. Just take a look around and in the meantime we'll try to help people still get started. And there is normally an exercise in the learning system. So installing and configure solar which is this page. What I want you to do is to configure it at search page and place the more like this block on the right so whenever you're viewing one of your nodes you'll see related content. So that's almost it. So I will show you how to do that if you don't know. So this more like this block is actually by default configured. We go to our blocks and this resolution is not really helping. Normally the more like this block is not enabled by default. We put it there. It's kind of straightforward. And if we then visit any of our nodes for example this one loads yeah hold on because I changed my solar server. Also good to know that if you install the schema and the solar config from the module the time you have to wait before solar actually understands that there's content in there, it's index is up to, it's two minutes by default. So even if you send your content you have to wait before you're able to search it. And it actually says so here as well. So delay two minutes before updates are processed. Now don't pay attention because I'm just going to change my solar index. Let's see if we have like another one. For example in a similar case of Andorra I'm watching Andorra here and on the right I don't know if it's very visible more like this it's not that the system knows that these things actually are related but most of these cities are actually from Andorra because it's in the text that Andorra. So if you can see something like that as well that would be great. The other exercise is just to search something maybe put the sword block on the left you can search for Andorra should return you something it doesn't have the display mode so I should actually disable that you should normally see a regular search result and what I want you to do is to search for wooden houses okay and then look at the results it gives you let's try that first and then we'll continue how quick is it not really quick so what I can do let me see what we also can do is we're all like okay now you understand how to do that I thought maybe the indexing would be a problem we can all connect to the same core but then I have to ask you not to delete it okay let me see if this works give me one second because that might make everything much more quick so please stop the indexing then does anyone still indexing somehow I'm gonna stop you so be careful it might be some error I stopped so hold on how much memory did you get anyway probably not enough but I'm gonna just do one index and then everyone to the same core it's all the same content anyway so I stopped and started 22 ads could not have stopped yeah yeah I think the default is only 20 or 20 because of the configuration how much memory yeah it needs to be tuned up but even still yeah probably it's one laptop to run the web server database it's a little much more okay so just gonna quickly repeat what most of you have done I'm on that same server now it's a search toolkit it's a little framework it's a little search and if you want you can connect to the same URL but just remove the number and don't re-index so go back to your settings go to that core remove the number yes for those that want to take like a small coffee break I think there's a 15 minute break you can do so otherwise stay seated and continue to connect yes so the search training website will always be available and in the beginning there's even a link to download the demo site so if you want to install it all locally you should be able to do so yes sorry talk to you okay so feel free to take a small break I'm gonna re-index this whole thing during the 15 minute break and once we get back we should be able to like I probably did yeah I deleted it sure there was 420 items in there and now it's zero no you shouldn't do anything with these buttons please stay away from these buttons otherwise we might never get anywhere from that moment it should be like much more quick to get optimizations running etc for those that want you could already enable facet api the module because that's one of the things we're gonna do next and maybe what you can do is to unload all the cores except for search training might be good for memory just also to prevent that maybe someone is still indexing someone is still indexing now I have 700 items who's the naughty guy I'm deleting it sorry true if you want you can stop and start the dev desktop just to make sure that everything stopped the PHP processes your site will break for a second that's fine it's a restart break it's restarted it should be done if you want you can even like remove it all from solar.xml and reload it so if you did it at home you should be able to see something like this and also maybe even a little faster than this I'm doing 50 at a time but you can see like it's checking along nicely which it didn't on your local installation I guess if you want to like improve this there are some modules to improve this there's even for experimental people there's a patch of solar parallel module that I wrote that uses multiple threads well not threads multiple processes so four processes of PHP maybe eight depending on how powerful your computer is and then you can imagine if you send 200 items times eight instead of times one that's way faster if you have a million entities and you quickly want to re-index them it might be very beneficial it was fine it's a little slow because it's all this whole rendering thing everything that you can do in UI you can also do in Drush so for those that want to do terminal stuff it's fine but you can do the parallel thing and it also works with Drush yes it does because it just hooks into the batch process and Drush is also batching someone asking a question the new one is the same as before but without the number but please don't press the buttons I'm in charge of pressing the buttons here if it doesn't appear you're more like this block it's kind of normal because there's not really anything parsed I guess yes I will do that after I indexed otherwise yes well can you set that variable for everyone or is it hard to put it on read only although maybe it's not necessary yeah it's tricky right you can set it in settings PHP but that's actually not too hard leave it right I tried that but not everyone has a Mac or Windows or Linux or XP or Vista or something I've never heard of it's impossible if you're developers you know what you can expect from them to download the site so there is in your learning system if you log in you go to I think before you attend setup there's here a little hidden link instructions in the reference and then here there should be a link to the sample site until Dropbox is like broke yeah create your account now yeah you can still go to that training site but the demo site that you're working on today it's local I'm not able to put it online yeah so there's also instructions or you use Acquia search which is free it's really easy there's like a new free tier thing you create your account you enable Acquia search and it sets up solar for you so you can do the same training without even setting up solar but if you do want to install it locally there's also instructions there for this I don't want to go to Acquia search okay let me see almost done here that should be fine no it's still indexing so the block might not appear yet but the more I use block in your block admins should be there should be fine because I'm on the same server and I don't have any issues alright for those that are still in front of their computer can you go to your admin config search if you have configured your search course to be just search training not the number you should be able to see this indexed could you confirm that for me confirmed and now if you go to your search page which is if you go to home and then search site if you type in test or wooden houses you should be able to see something like this could you confirm that as well so you can just go to home and then there is a tab search here is like defaults to this one type in wooden houses is there anyone with issues your white screening someone else with issues for now are you able to like find this content there as well that's fine I mean you can ignore the block for now let me see if I can enable that block structure blocks all right so then you see here disabled more like this you put it in your sidebar second save it should be fine then go to home search Andorra if you type a typo you can see here right I typed in Andorra actually I meant Andorra it helped me so by default it has all these settings set up for you and normally if I go here to one of them I see my block right or even this thing I don't know what all of this is but the use case I have here is wooden houses so if you some of you can confirm you see these exact results that would be great right I'll give people one more minute to come back or I don't know are there still people taking a break I'll continue so while you're seeing this page please try to see would you as a user be happy with this would you as a if you deliver this to a client would you be able to deliver this to a client and for example also the relevancy of your results I searched for wooden houses and the fourth result is a result where I have a word houses and it's somewhere else and the text there's wooden it's not really relevant so these are the things we'll cover next maybe you can try to search for something else try to search for your city I don't know if I have your city in the system are we all ready to continue so everyone should be able to see that search page I have some results if you don't please ask your neighbor or raise your hand Martin and Peter should be here to help you so as I said before there are some problems with that search page that we had here there's some HTML here appearing and as I said relevancy wise this doesn't make any sense wooden and houses it's far away from each other but it did come back it's because solar doesn't understand that this is contextual maybe even if I type in gents which is my city I see gents like the English word for men and there's some other stuff but not my city if I type in gents that's already a little better I don't know if in this set I really have my city but it also doesn't really understand locations there's some problems but let's focus on wooden houses and then let's see what options we have available to improve this and if we go to configuration search a metadata and a purchase order search please go there and then go to settings and then bias and while I'm explaining some of the things in the presentation take a look there what you can do so there are some optimizations we can do maybe you have like a big website where you post a lot of blogs so you want to boost your more recent content or you want to boost content with comments which was said by Peter it doesn't work in core search maybe you want to boost on body content or taxonomies etc but you also want to search for sentences or phrases or you actually want to say ok if I type in something words that are closer to each other if it appears in my search query it's actually more relevant so there's some things we can do also solar comes with some configuration options and this kind of gets back to that question I had like can we prevent words from being searched or appearing there's some files called synonyms.text stopwords.text and prodwords.text I'm not going to go in depth but you can actually define for your own vocabulary of your site what are synonyms could be something like megabytes is the same as MB synonyms could be Drupal well WordPress is actually the same as Drupal or vice versa you can like choose whatever so I'm going to demo something and then you can do that as well feel free to set some settings here and if you really want to see like a difference between an article on a bias of 8 for example because articles in my case or in our case is more important than any of those cities I want my articles to be much more relevant than everything else so you can see you can put more recently created nodes or entities more to the top sticky promoted and this is actually the most interesting part if you want to play around you can boost items with taxonomy terms from a certain taxonomy vocabulary if that appears in my search query and it appears in that term boost them to the top other names etc sorry we don't show the fields here but if you want to boost hidden fields you should do that in custom code and it's certainly possible and it's probably like two lines yeah not in the UI might be a nice contributed module to do so but not every field is indexed separately it's only indexed separately if it's also like a facet so because you don't want to search in those fields separately so it's a little tricky so we can save that and if we I'm going to do one more thing that is actually really nice for you to know if you go to your search page you go to edit there are some advanced options and what I'm going to do is this bottom block show enabled facet blocks in the regions when I go to my page but also show me some results already okay so I'm going to save that let's go to my site and what happens then if I go to my page I don't have to type in any word to find content and let's see do I have any blog here I actually don't know if I have blogs so let me create a quick article title written houses this is fun so if you make a new node you have to wait for cron to index or you can see here look I just created a new item it will tell you there's one item that's remaining to be indexed I'm going to send this to my server and then wait two minutes alright so I'll wait two minutes but I'm going to do something else before so let's go back to our wooden houses use case and there's a module that you should enable if you want these words to be actually contextually related or as the closer they are the more relevant they are and if you go to modules and you can search for proximity there's a module called apache solar term proximity which is available on Drupal.org you can just enable it it might take some time and if you then do exactly the same use case wooden houses we normally see a different result set so in the top we still have wooden houses we remember the fourth one was a different one where wooden and houses were not related now we see wooden houses wooden houses so it's closer to each other and the ones that have separate will still appear in your search results but will be less relevant you can actually change these settings on how relevant the words should be how relevant the proximity should be so if you didn't go to bias where you were before there is this term proximity boost or bias that you can actually say okay for me this is much more relevant than other use cases so you can play around with this so please do that I'll give you a couple minutes and then we'll move on to facets widgets for those that are ready I think there's even like a challenge exercise if that's what it's called this exercise optimizes search results if you're in the learning system it does exactly what I just did so it wooden houses bias you can do all of this at home if you want to do it more calmly and even if you want to have some challenge exercises at home so I'll do this just for the people that are watching just to enable the sort module all the other ones that are still busy with the proximity don't worry so I'm enabling my sort block on the left so normally when you don't have the module enabled you would see date, title, relevancy etc maybe for your use case you only want to sort on date maybe you only want to sort on title so there's a module called a purchase order sort that you can enable and it can then be found in the purchase order settings and there's a tab called sorting and then it's really easy to enable and disable the sort options you can even change the weight I agree it's not a really nice UI but you should be able to figure it out you can also say look, my site it's very different I actually want a default sort maybe you want a default sort on not relevancy for the beginning like when you show your results but I want to sort on title maybe on date to show the more recent entities or nodes like before they even searching you can do that and then we're going to continue to facet on widgets are there any questions so far who needs still help still widescreening are you the only one yeah I can understand you cannot follow the modules although I'm working on the same system as you now with the same IP I don't have that issue so I wonder do you need to enable that relevancy module the proximity who wasn't do you need help or are you still enabling it sorry we can blame the wifi I'm sorry so it's not the laptop it's the wifi I already did so much do not rely on the internet and even local network is failing it's a free lab right so feel free to explore that site more or like try to figure out if you can load it I'm going to explain facet on widgets and then we'll continue during the exercise so facets they kind of define structure in your search and they will be able to allow you to drill down in your content you're showing stuff to your users that they actually don't know that exists so what are facets is there anyone that doesn't know what facet is a definition so facets are ways to drill down in your content based on structured data like content types show me only that content type show me only country belgium show me only like or from last month you can see here everywhere where you can see filter by in netflix if you're filtering by like drama or anything that's a facet right but you can see some more nice facets here they could be on the top they could be on the side but there are some problems lots of people enable all of them don't do that and I don't know if someone can actually spot the problem in this website give you a second or two it's not really the facet it's the sort I'm sorry I'm not able to enlarge a picture so this should be able to show you the problem it's a sort problem not necessarily a facet but it's the same way like how to allow your users to change what they're seeing did someone spot it already? right so you allow people to sort by name but your name and this is for the whole site starts with amount of chairs so sorting doesn't make any sense on name or if the room of the number so make sure you test these use cases because now I mean I want to find Devlin but it's actually like doesn't make any sense maybe chairs that are for are way back but I'm not going to do that I'm just going to use your search results all right the same with facets if it doesn't have any use your facet also don't use it do some user testing if you have the resources listen to your users analyze your query logs check your competitors always fine but do this wisely maybe do less like sometimes less than more and then we go to facet api in Drupal so if you want you can enable the module already like bit by bit and we're going to enable some facets and play around a bit with widgets so these are some widget types you have a tech cloud you have the country as a normal text list you can also have checkboxes there's a slider as you saw in the beginning and there's some other ones that you can do so I'm going to show you how to do this if you're free to follow or follow the learning system so I'm enabling the module facet api and I'm going to directly enable a couple other ones as well so date facets the tech cloud and the bonus don't enable all of them certainly don't enable this one it's very unstable I will explain it later but don't enable it so that might take some time seems to be fine if you're white screening the wifi but then once you have enabled that you can go to settings facets and here you can enable these facets is this readable are we still more or less following yeah not no if it's not okay so what I'm going to do is I'm going to enable the population so you can follow right if you're there already enable the country enable the post date so there's four of them population, country, post date and content type because I want to actually drill down in my cities based on country and based on population once you did that you will see like a little link called blocks go to blocks to actually enable your facets so we go to blocks and in the bottom you see some facet api blocks and you can put them all in the sidebar first again all these instructions should be also available in the learning system and we're going to save the blocks and if we then go to our search page we are able to see something like this filter by population which is horrible doesn't make any sense filter by country which is a big list filter by post date which is based on two years not as we saw before by last month and last week by content type and if you have noticed before with the first really small demo is that this population filter was not present if I didn't click on the city facet so these are called dependent facets so sometimes you want your facet only to appear if you go to a certain content type like ebay if you go to computers then you only want some other things to appear sure sorry so you have to go to search page I think Peter should be able to help you with that to show your search results by default how many have this I'll continue so the population slider is the coolest one so I'm not going to do that first if you see the country go to this little edit thing and then we can see the admin UI of facet api and this is actually where all the nice little widget magic happens so you can say ok this one in my country I want it to be tag clouds I give it four levels and I don't want to sort them by the active facet because otherwise your whole tag cloud is changing kind of and we can give it an or so if we save this now we can see apparently there's a lot of cities from Australia not so many from Bulgaria nor the Philippines however if I click here I can see the cities from the Philippines and I can see I selected it maybe also one Bangladesh and then both of them are selected this tag cloud is still way too big there's a lot of options you can do the hard limit you can put it in 20 or 10 even and then we see it's a little nicer so then the next one and the next one is the post date so if you're searching in Google how many of you know that you can actually say give me results from last week find it it's really really useful because you can find recent blog posts and not blog posts from like 2005 and the problem here is that imagine in a similar use case where you have a lot of blog posts and you only want to have the more recent ones from maybe from last week or from last month and you know it was written somewhere last month but you don't know exactly in which month so we can try this with this system and then we get a drill down of months so I clicked on year I clicked on months and now I'm guessing right I think it was written in May and now I have to say which day I'm not informed of what your website does I don't know when you wrote this I just know more or less in which time frame this could be very useful if you have knowledge of the system or events for example but in our case it's not so useful and I don't know if I have to enable a module it's called date facets is it enabled? ah here yes so then there's a widget called date range and there's a little trick that you have to do that wasn't solved yet but the query type should be set to date range okay and you get a little UI where you can actually add ranges so maybe you want to say yesterday 3 days ago a week ago, a month ago, 6 months ago maybe your system is very different than my system so you should be able to reflect this yourself so I'm saving this and now we get this last day last hour, last month, last week it wasn't sorted correctly but you can solve that yourself and then another one is this population and then you have the widget called slider for example, imagine an e-commerce website where you want to select prices and I have a budget of $20 but I can actually spend $15 up to $20 so maybe this is a really good use case to use a slider instead of allowing them to type it in themselves you can see this way at Airbnb they do the same, some other websites do that as well you can add prefixes, suffixes maybe you work with the euro maybe the dollar should be in the back and again this is a little tweak it's in the readme but the query type is different because the way we ask solar to give us that information is also different and if we then check our little page we see here the population and it's already a slider and I can slide up and down so both ways work and apparently then I can see my tag cloud also changed from the countries and these are the really big cities however I like this already but the search results are still crap they're still not very appealing so there's a patch in the issue queue to do that for time I don't know if you ever tried that so I know it works if you do the patch but I mean I would put on a helmet and be very careful alright so I'll give you some time to do that yourself if you want, maybe you can just do one maybe just do the slider give me some hints if you need help or if you've done so I know how quickly I can proceed so then I'm not going to continue yet I'll give you some time this is the last part for this lab and that's how to change the search results displayed and then we more or less got the same as what we started with who got one widget up and running who got the slider up and running I'd like to see a little bit more hands or maybe you totally lost me already or are there any questions I'm happy to answer them could you speak a little louder please yes so I'll show that I'm going to put the block first in the top so the slider is bigger and then I'll show you how to do that if I'm able to access my site here what? everything's down should be up again the laptop went to sleep it says I'm bored I'm not there yet should be up and running for everyone again so what I'm going to do I'll show this dependency while you're doing the widget so if you're free to do what you want I'm adding the population to the top because I want my slider to be big to my homepage search I see my population but I see also remember I created this blog Drupalcon Search Training it doesn't have any population so it doesn't make any sense to show this even and here in my filter there's this little thing and I hope you can see it it's kind of small and then here you can say bundles at least one of the selected bundles must be active and it should be city so you can save and go back and then my slider is gone and once I select my city it's there you can imagine use cases where this is much more complex but at least it keeps your search page small and understandable are we good to continue okay we sort the content based on okay so what you can do here configure facet display and here there's a big sort thingy and you can say okay based on facet based on the count the count is the amount of nodes that are there it's really hard to sort that cloud based on the population because you don't have that contextual information where a country has population only cities have population if you want to do that you have to create that little facet yourself or have a field in Drupal that has this with a name and a value so there's some sorting options and there's facet API bonus if you want to do much more so we have half an hour left that seems to be fine so okay now we got more or less our search up and running we have facets, we have facet dependencies we have really cool sliders but this is actually usable like is it what users expect to get from a search page so it's kind of a lot of mistakes are made like I'm gonna put it all there there's some some standards and in the bottom there's some smashing magazine the link I'll post the slides to the session and there's some really nice guidelines on what to do with your search page make sure your search form is big enough make sure it's like your text in the search form is big enough allow them to understand how your search page works so these are some suggestions don't show stuff they shouldn't see make sure maybe have different pages with different search content and this last one a little hidden but remember there was this one module I didn't want you to enable the prettypots so if you just have a search page and you don't use these sliders or date facets you just have taxonomy terms or normal things and you don't want your URL and I'll try to zoom in on this to be this ugly because it's kind of ugly there is a module called facetapi prettypots and again be careful it's not stable but it does change this to a normal bundle slash city instead of f and we welcome more contributors if that's really what you want to make it more stable alright so there's some options so we have the left part we have the slider we don't have autocomplete yet maybe that's useful do you think that's useful guess alright and then some nice display there's another complete module yes so you just enable it and you're done you can do it it exists autocomplete and we're going to work on the display of our search results I don't know if I had a second slide here that's a demo so I'll just enable the autocomplete you can do so for yourself as well please do autocomplete I'm saving it normally if you type in andor it will tell you autocomplete things that are present in your index even if you and I'm not sure if this works you should also do some spell check but maybe not for everything multilingual sites so multilingual is a topic that I could spend or we could spend like another day on I'm focusing on English here if you want to know there are some quite some resources on the internet but with Solr it's kind of complex to have multiple languages in one site you could configure it to have one language and then you have to change your schema to say instead of English this is Spanish and then it will work exactly the same but it's not as straightforward because Solr assumes by default that your language is English if you're using aqueous search you could select the schema we have support for Danish German, Spanish and some other ones instead of you changing the schema Solr does have support for ETF-8 and there's even a file I don't know the exact name anymore weird characters to normal characters there's a mapping for example this weird B in German to a normal phonetic character so it has even Japanese and Korean things should be fine so we enabled autocomplete there's some other things you can do but I'm going to continue is anyone able to see exactly the same as what I'm seeing on my screen like how far did we get, yeah alright it's better than the first time I did this so then we get to display suite and I have to add a warning here because it's a really big site it's problematic and I want you to understand why it touches a little bit the main differences between the Apache Solr module and the search API module whereas with Apache Solr module by default when you get results it goes to your Drupal site and everything you see comes straight from the Solr index so if you have a million nodes your next million nodes you still just have raw content in your Drupal site if you want to do something like this most of the times and you want to use this place you have to load your entity what does that mean if you have a big site you're loading random entities not from cache because maybe your entity amount is not able to fit in your cache and you're slowing down the whole system so this is like in this case of a lot of cache misses because it's random yes it works by default it does an entity load so there are some performance problems if you do this however if your amount of entities are cacheable and they fit in your cache and you have configured memcache for example to allow all of them to be there and you want still like really performing search pages it is okay to use entity loads but that's like a lot of ifs right do you understand that before I continue no if you have a thousand nodes a thousand is maybe a bad example a million say a million and you're searching and your search page has ten results it does ten entity loads these ten entity loads they have to go to your database and there's a bunch of joints you lose a lot of the performance when you're actually switching to solar because you're going back to your MySQL database which is not okay right if you have a thousand nodes and they all fit in your memcache and you use entity cache and then you do entity load it's probably fine because it's not going to MySQL so there's this really big concept difference between the two modules and that's I think one of the main differences right so you have to understand this because you're making a big scale website anyway DisplaySuite is a really cool tool to team your content loosely coupled from search results I don't know who has worked with DisplaySuite do you like it I think it's pretty cool and it allows you to put content in different regions and I'm going to enable it DisplaySuite and there's a module for DisplaySuite called DisplaySuite Search it has support for Apache Solar so you just enable it and then if we go to structures content types in here with cities we can do manage display and DisplaySuite took over this URL from manage display where normally you had Drupal Core and you would see this which is kind of normal and if you go to search results and I preconfigured this for you so you don't have to do it yourself if you enable that on your training site you should be able to see something like this is anyone able to get there I'll wait a little bit because I understand this is a little complex just enable DisplaySuite search go to structure, manage display on the top right you should be able to see search result and then you should be able to see something like this did someone see this yeah someone needs help so I'll continue so you can save this and if we then go to our search page and I don't know I think something went wrong and I don't know what all of this is CSS do you see that as well sorry I don't think I did any teaming maybe I did a new installation of DisplaySuite before this demo maybe they fixed it I don't know but normally you see search results let me see where you're wearing your hat let me see I'll try to clear cache here as well that might help so devil other tools anti-cache so believe me normally I know there's some custom code you have to do to make that work but it's not a well it's something so it doesn't work in the search page form alright anyway too bad of this whole display thing I'll skip this, I'll fix it later if you download the training site normally you see like the map and in the beginning it was fine so I don't really understand what happened here for everyone give me one second so I can show you maybe the normal way one second here it's fine so I don't know what the difference is between my local installation and the one on the server but this is what you normally should see ignore what you see this is what it is it's a little better than the results we had before but remember this doesn't actually load so but at least we can see the population if we then filter by city JavaScript is loading and I want to like only get the big cities we see a nice little snippet of Tokyo with the amount of population which we didn't see in the normal search results right so you're able to do that but then you have to also team it in the search result tpl-pchp file you have to do it yourself it's not really clickable but it will be faster and that's what we also recommend in Acquia to do if you have a large scale site sorry I mean I kind of auto-populated coordinates so Leon is right alright so there's we have 15 minutes left I'm going to do one more thing to show you because I think it's cool so there's some and this is custom we have the hat the code is available in that download that you have I am not asking from you to enable that on your demo site but what can we do with these cities like imagine if we could type in a word for example Prague and get all the neighboring cities or cities that are close to Prague imagine you're looking for a restaurant near a certain street and these restaurants have geolocation data you could sort them by distance so there's a module that I created and it kind of leverages the location module and there's also an effect to sort the location module you could probably do the same with the geomodule so you prefer like it depends on what you prefer you're in other search training location so let's see if there's any I don't know if Ghent is in here yeah so remember the example I did with my city with Ghent with G-E-N-T from Ghent so here I typed in Ghent what happens is that it's sending it to the Google geocoder service it asks what coordinates is this text it sends it back to our search site and that's the result where the word Ghent appears and also give me all the results that are close to this geolocation data and boost them by distance so here we can see Ghent is if you can look really closely it's one kilometer away from my requested location for example this one is 45 kilometers away from solar so this is a kind of a proof of concept that if you want to do geolocation with solar you can do a lot of really powerful things that you cannot do with MySQL or lots of other technologies and maybe just to wrap up you can also index files I'm not going to demo that nor going to show you that but it extracts content from PDFs and documents it sends it back to Drupal Drupal sends it to solar and you can search your files and even have more like these blogs that are related apparently so this is how it would look like you can see okay this is the file etc and that was it for this training we had like 10 minutes left for questions I'm sorry that it went really quick we only had 2 hours maybe some of you were not able to follow everything but I hope you learned something so thank you for staying could you get the microphone so then it's also available on the video afterwards I think if that's possible can you also filter content based on authorization so in your results yes so there is a module that comes with the whole suite it's called a patch solar access I think and it works based on the node grants or on the grants table node access system that works using like you have a group of users that was able to access that and it indexes all the information also into solar and then it will add automatically for you that specific filter so that user that is searching from that group is not seeing results that it shouldn't see exactly however be careful we recently discovered if you implement hook node access I think which hook was it Peter but I discovered it recently that thank you but it's possible are there any other questions on that last screen where you showed us the geolocation thing I noticed that the digimene set rent which is if you scroll up you search for Gantt and then the digimene is not relevant to the index really is there a way to tune it I don't think we have a UI way to tune it but solar allows you like a bunch of options and that depends on the version of solar that you're running to say okay the relevancy of this auto correction only show words that appear more and so it is from the index like it uses the index in solar tree it's a separate index and solar 4 it's actually combined with your index yeah you can choose you can see like there's a ton of options if you really want to like configure it we should be able to do so thanks for a great and very interesting presentation I was wondering are there use cases where the alternative search API solar search is perhaps a better option than I think what we were basing this on which was the Apache solar search module so if you rely on views to have like somehow listings in a very different way that is too hard for you as a developer to do in teaming it might make sense to use it as a quick prototype distribution wise there are some advantages to search API because you can switch from MySQL search to solar search with a really changing like commerce distribution it all depends on the scale you want to deploy it on so at the larger scale it would be the which one the Apache solar search not the search API one due to the explanation I gave about this NT load which is problematic in big sites also for example if you have multiple sites and you have one site where you want to search all of them that's almost impossible to search about it's possible so I don't want to lie here but it's much harder because it relies on this entity load so much and then your views is like all this contextual information disappears and with the Apache solar suite we don't rely on any entity load except if you use display suite which is then again a problem but you then can have results from other sites in your site having the same so it depends if that's a use case like for example Drupal.org you can search in groups at Drupal.org and vice versa even like Drupal 6 and Drupal 7 that's possible with Apache solar which is almost not possible with search API so it all depends what you want and people could be very happy with both solutions thanks and I joined like could you put the link up to the download that you were mentioning thanks a lot is there one more question maybe really deep dive solar for beginners so I can understand you you might not have that alright then I thank you for your attendance really happy you stayed until the end and I hope you are able to create a better search experience for your users if you want to try out solar for free Acquia has a free tier option you can just register you get a free development environment plus solar you can try this whole thing out so I didn't add the slide but if you have feedback about this session go to the Drupal account website go to this session and there should be a way to give us feedback it's a very small link I guess but I would appreciate if you do because if we continue to do these trainings like what could we do better etc what did you think was good so that would be nice if you could do this