Hi Hassan, In general, the best places to look for code examples are:
1. In the unit tests (https://github.com/apache/lucenenet/tree/Lucene.Net_4_8_0_beta00014/src/Lucene.Net.Tests.Analysis.Phonetic) 2. On StackOverflow (https://stackoverflow.com/questions/tagged/lucene.net) and (https://stackoverflow.com/questions/tagged/lucene) 3. Books published on Lucene and Lucene.NET And also, don't forget to search for Java Lucene documentation because there may be a lot more examples to look at. In this particular case, I put together a working Phonetic example on StackOverflow in this answer: https://stackoverflow.com/a/65062117, but it was based on one of the tests, which there are a lot more examples of. Thanks, Shad Storhaug (NightOwl888) Project Chairperson - Apache Lucene.NET -----Original Message----- From: Hassan Iftikhar <hassan.iftik...@enghouse.com> Sent: Tuesday, March 30, 2021 2:24 PM To: Shad Storhaug <s...@shadstorhaug.com> Cc: user@lucenenet.apache.org Subject: RE: Lusene.Net | .Net | SQL Server | Databases Hi, Thank you for your feedback. I am interested in Lucene Phonetic feature. And what I found that Lucene is providing this feature by default. But the Lucene.Net documentation is extremely lacking and I've been trying to figure out how to make use of the Lucene.Net. I want to know how I can I use this feature (syntax wise). What nugget packages, analyzer and namespaces I required in order to implement this feature. Thanks! Hassan Iftikhar Software Engineer, R&D m: +92 (0) 300 064 9845 w: www.enghouseinteractive.com e: hassan.iftik...@enghouse.com As the world responds to the Covid-19 outbreak, Enghouse is committed to doing its part to support organisations' risk management efforts. We are providing temporary licences of our secure cloud-based communications platform at no cost to your organisation. -----Original Message----- From: Shad Storhaug <s...@shadstorhaug.com> Sent: Thursday, March 25, 2021 3:35 PM To: Hassan Iftikhar <hassan.iftik...@enghouse.com> Cc: user@lucenenet.apache.org Subject: RE: Lusene.Net | .Net | SQL Server | Databases Hi Hassan, Near-real-time search works by reusing the same IndexWriter for all clients - you keep a singleton instance of IndexWriter which all clients write to. Then, if a client needs to search use DirectoryReader.Open(IndexWriter, bool) to get an NRT reader with a "live" view of the data that was recently written to the IndexWriter. This will scale well to many clients. https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flucenenet.apache.org%2Fdocs%2F4.8.0-beta00013%2Fapi%2Fcore%2FLucene.Net.Search.IndexSearcher.html&data=04%7C01%7Chassan.iftikhar%40enghouse.com%7C49fa5d571a614ca9fef908d8ef79a78f%7C427e40023c0240489e280eba58b331f4%7C1%7C0%7C637522653080297734%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=v%2BRNvvVU6R8c%2B4NzJmvtsQAX9ZOsqU9rXGHvI7Ok8Zg%3D&reserved=0 It assumes that your application can write the data to the singleton IndexWriter in the same transaction it writes to your database. If you have clients who are writing the data to the database that you cannot control, then one option is to setup a batch to update your index (on a schedule, or in a queue). You could still use NRT for some of your clients, but the data that is written directly will be delayed for as long as the batch process takes to update your index. You will need to create some way to keep track of which records were added, updated, or deleted in your database so you can make the appropriate equivalent action on the IndexWriter. Of course, with NRT a better option is to eliminate the possibility of someone writing directly to the database without going through an application that updates the index. Frankly, it sounds unusual to need near-real-time search in addition to having people do manual updates to the data without going through an application. The former generally assumes the latter will never happen because the need to search immediately is worth the cost of full automation. On the other hand, if you don't have full automation it is unlikely you need near-real-time search and updating your index in batches or even during off-peak hours would be fine. Thanks, Shad Storhaug (NightOwl888) Project Chairperson - Apache Lucene.NET -----Original Message----- From: Hassan Iftikhar <hassan.iftik...@enghouse.com.INVALID> Sent: Thursday, March 25, 2021 3:17 PM To: user@lucenenet.apache.org Subject: RE: Lusene.Net | .Net | SQL Server | Databases Hi Shad, As Lucene.Net is a general purpose library and it has nothing to do with data sources like SQL Server, SQLite, etc. It only knows you have a Lucene document that you want indexed. So when we dump data to Lucene.Net from any data source. How can we make Lucene.Net documents up to date as the data is in SQL Database(For example). One way to keep both data, i.e. (Lucene.Net and SQL) sync is to continually update the Lucene index during each database update. We also know that there is a possibility that someone can made manually changes to SQL database, in that scenario how we can update Lucene indexes? Thanks, Regards, Hassan Iftikhar Software Engineer, R&D m: +92 (0) 300 064 9845 w: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.enghouseinteractive.com%2F&data=04%7C01%7Chassan.iftikhar%40enghouse.com%7C49fa5d571a614ca9fef908d8ef79a78f%7C427e40023c0240489e280eba58b331f4%7C1%7C0%7C637522653080297734%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=vehPkhvOJgoKo2BmWsdiWcl2wDHnm4e9RdfypDzN4fs%3D&reserved=0 e: hassan.iftik...@enghouse.com As the world responds to the Covid-19 outbreak, Enghouse is committed to doing its part to support organisations' risk management efforts. We are providing temporary licences of our secure cloud-based communications platform at no cost to your organisation. -----Original Message----- From: Shad Storhaug <s...@shadstorhaug.com> Sent: Wednesday, March 24, 2021 1:21 AM To: user@lucenenet.apache.org Subject: RE: Lusene.Net | .Net | SQL Server | Databases Hello Hassan, While you might extend the Directory class to provide a "native" communication channel with another data storage medium other than the file system, you will quickly find out how challenging such a task is, and there will always be a high price to pay in terms of performance. Basically, there are a few different ways people deal with data from a database but most of the time you have to accept that some data will be duplicated between the database and Lucene, but the risk of that duplication can be reduced/eliminated by applying automation. The exact solution depends on how much data there is and how often it needs to be refreshed. 1. Make indexing part of the deployment process so the most current copy of the search index is the deployment date. 2. Design a custom job to update the index at specified intervals. 3. Use Lucene's near real-time search (NRT) feature to continually update the Lucene index during each database update and keep a "live" view of the data in search. There might be other solutions, but these are generally the best options for most scenarios. Thanks, Shad Storhaug (NightOwl888) Project Chairperson - Apache Lucene.NET -----Original Message----- From: Ron.Git <ron....@giftoasis.com> Sent: Tuesday, March 23, 2021 7:49 PM To: user@lucenenet.apache.org Subject: RE: Lusene.Net | .Net | SQL Server | Databases Lucene is a general purpose indexing and search library. As such it is not concerned with where the data comes from. When that data comes from a sql database, developers typically use their normal approach to retrieve the data from the sql database an then use that data to populate a Lucene document for indexing. Lucene itself has no knowledge of where the data came from. It only knows you have a Lucene document that you want indexed. -Ron -----Original Message----- From: Hassan Iftikhar [mailto:hassan.iftik...@enghouse.com.INVALID] Sent: Tuesday, March 23, 2021 5:07 AM To: user@lucenenet.apache.org Subject: RE: Lusene.Net | .Net | SQL Server | Databases Hi, Hope you guys are doing well. Thanks for the feedback for my last email. Now I have another query regarding data sources. I want to know how Lucene.Net communicate with data sources i.e. with existing SQL Server database. As I mentioned earlier we will be using Lucene.Net in existing .Net Server/Client applications. So I am interested to know how we can take the advantage of Lucene.Net with existing SQL server/ SQLite Database? Thanks in advance! Regards, Hassan Iftikhar Software Engineer, R&D m: +92 (0) 300 064 9845 w: https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.enghouseinteractive.com%2F&data=04%7C01%7Chassan.iftikhar%40enghouse.com%7C49fa5d571a614ca9fef908d8ef79a78f%7C427e40023c0240489e280eba58b331f4%7C1%7C0%7C637522653080297734%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=vehPkhvOJgoKo2BmWsdiWcl2wDHnm4e9RdfypDzN4fs%3D&reserved=0 e: hassan.iftik...@enghouse.com As the world responds to the Covid-19 outbreak, Enghouse is committed to doing its part to support organisations' risk management efforts. We are providing temporary licences of our secure cloud-based communications platform at no cost to your organisation. -----Original Message----- From: roncl...@giftoasis.com <roncl...@giftoasis.com> Sent: Wednesday, March 17, 2021 7:29 PM To: user@lucenenet.apache.org Subject: RE: Lusene.Net | .Net | .Net Core | .Net5 | .Net framework Hi Hassan, Thanks for your interest in Lucene.Net. I am a recent contributor to the Lucene.Net 4.8 project and will do my best to answer your questions. 1) Lucene.Net 3.0.3 is from some time ago so it makes sense that it doesn't specifically target a newer version of the .Net 4.x framework. However, if it's documented to support .Net Framework 4.0 it's very likely it will work on 4.61 since .Net Frameworks are generally backward compatible especially for the major version. 2) Lucenet.Net 4.8 which is currently in release Beta 13 supports both the .Net Full Framework 4.5 and supports NetStandard2.0, NetStandard2.1. As such it is compatible with .Net Core 2.0 or higher. 3) Each Lucene.Net version attempts to be a faithful port of the functionality in the corresponding Java Lucene version. This is largely accomplished by porting the project from Java to C# on a line by line basis. However, occasionally a few features and bug fixes are pulled in from later versions. In general anything you read online about Java Lucene 3.0.3 will be accurate for Lucene.Net 3.0.3 and anything you read online about Java Lucene 4.8 will be accurate about Lucene.Net 4.8. Also note that while Lucene.Net 4.8 may seem like it's version number is far behind the current Java version which is version 8.8, the reality is that the version 4.8 contains the _vast_ majority of features found in 8.8 because the big change (and multi-year effort) for Lucene came in version 4.0 when codecs were introduced. Since then the features added per release have been much more modest and the releases much more frequent, hence the rapid escalation in version number. 4) Lucene 4.8 can be used on the latest Full Framework and on the latest .Net Core Framework. More specifically, yes - Lucene.Net 4.8 is fully compatible with .Net5. I personally use it with .Net5. Lucene.Net 4.8 is in beta but I believe some people do use it in production as it has been extremely stable for a very long time and has a large number of unit tests ported from Java Lucene which are must pass before commits are added to the project. Some in the LuceneNet developer community have even stated that they think 4.8 is already more solid then 3.0.3 given that the earlier version did not have the extensive unit tests to ensure accuracy of the port. Lucene.Net 4.8 is actively being worked on with a goal to getting it to final release. If you have any time to donate we'd welcome your help in polishing this version of LuceneNet. Best, Ron Clabo rclabo on Github. From: Hassan Iftikhar [mailto:hassan.iftik...@enghouse.com.INVALID] Sent: Wednesday, March 17, 2021 7:58 AM To: user@lucenenet.apache.org Subject: Lusene.Net | .Net | .Net Core | .Net5 | .Net framework Hi, I am new at Lucene.Net and exploring it now a days to use it in our products. Here I have some questions to ask: 1. Can we use Lucene.Net in .Net framework 4.6.1? As the stable version of Lucene.Net is 3.0.3 and from your website what can I see that it supports till .Net Framework 4.0. 2. Can we use Lucene.Net in .Net Core? Because there is nothing information on your website related to support for Lucene.Net for .Net core. 3. Is Lucene.Net providing the same set of features as compare to Lucene for Java? 4. Can we use Lucene.Net in .Net5 i.e. on latest .Net frameworks? Regards, Hassan Iftikhar Software Engineer, R&D m: +92 (0) 300 064 9845 w: <https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.enghou seinteractive.com%2F&data=04%7C01%7CHassan.Iftikhar%40enghouse.com%7C3c0 3eeefda9448a3229f08d8e951310e%7C427e40023c0240489e280eba58b331f4%7C1%7C0%7C6 37515882219503948%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMz IiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=g%2BHSNyUoxQc9TZCt20NnNw96 puSdxWNBuiE372d7HMc%3D&reserved=0> https://eur01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.enghous einteractive.com%2F&data=04%7C01%7CHassan.Iftikhar%40enghouse.com%7C3c03 eeefda9448a3229f08d8e951310e%7C427e40023c0240489e280eba58b331f4%7C1%7C0%7C63 7515882219503948%7CUnknown%7CTWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzI iLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata=g%2BHSNyUoxQc9TZCt20NnNw96p uSdxWNBuiE372d7HMc%3D&reserved=0 e: hassan.iftik...@enghouse.com As the world responds to the Covid-19 outbreak, Enghouse is committed to doing its part to support organisations' risk management efforts. We are providing temporary licences of our secure cloud-based communications platform at no cost to your organisation. <https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fenghousei nteractive.de%2Feuropean-contact-center-dmg%2F&data=04%7C01%7CHassan.Ift ikhar%40enghouse.com%7C3c03eeefda9448a3229f08d8e951310e%7C427e40023c0240489e 280eba58b331f4%7C1%7C0%7C637515882219513908%7CUnknown%7CTWFpbGZsb3d8eyJWIjoi MC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D%7C1000&sdata= uOV3W9yR2h9I%2BYtigYu07wAZRZa27D%2BGSVDv64yiGFw%3D&reserved=0> vidyo-trial-outlook-signature-v2