Link to home
Start Free TrialLog in
Avatar of Wayne Harris
Wayne Harris

asked on

Does Microsoft Index work with local IIS website?

I have a Microsoft IIS website that is running on Windows Server 2016. I would like implement a search feature for my website. I use classic ASP as my programming language and the website currently accesses a SQL server 2016 instance using ODBC. Ideally, I would like to access the built-in search feature that is already included with Windows Server 2016.

Is it possible to query the Windows Search Index in a manner similar to the way I access the database in SQL server?

If not, do you have a recommendation for a simple, easy-to-implement search feature for IIS?

Thanks in advance.
Avatar of McKnife
McKnife
Flag of Germany image

Windows can of course index html files and when logged on at the server, you would be able to find text that is contained.
However, to do that from a client, you would need an interface that supports to do more than what windows server search usually does. Usually, you may only find what is indexed on shares. So you visit \\server\share and search for something below that share. now the IIS folders are usually not even shared.

A solution that would help you, would be sharepoint. Sharepoint may index its own andother IIS websites and allow surfing within the search results, just as one would desire to do. But unfortunately, Sharepoint is neither cheap, nor easy to administer, so I doubt that you would think about using it.

However, there used to be a free search server from Microsoft, which is based on Sharepoint 2010 foundation.
Good thing is: it's not too hard to setup
Bad thing is: it is no longer a supported product (end of life)

If you don't care about using an EOL product, then look at the archived (german!) "manual": https://web.archive.org/web/20160318154624/http://swisschecklist.com/de/a30fvny8/Microsoft-Search-Server-2010-Express-Installation-und-Basiskonfiguration 
The download is still available: https://www.microsoft.com/en-us/download/details.aspx?id=18914 
Think of it as an inhouse Bing based search.
In theory you can do that.  You can use classic asp and make command line calls so virtually anything you can do in windows as an administrator or user,  you can do in classic asp (actually vb script).

I have tried using the search index but on an old 2008 server. It was kind of slow.  You are better off creating searches on a database or using a document management system if you need to search content of documents.

What I have done in the past is to store file names, titles and keywords and file location.  Then search the database for those items and you have quick and easy poor mans search.  But if you are trying to recreate what google does for thousands of documents, that is where you are better off with a doc management system and using your asp to interface with that. Today, that document management system can be google drive or ms one drive, then use the api to search those documents.

There are a lot of options.  What specifically are you doing? In other words, wanting to search multi page documents? or just searching data? 
Avatar of Wayne Harris
Wayne Harris

ASKER

Scott,

I want to add search capability to the site. Web visitors would then be able to use these search features to search static web pages, static PDF documents (searchable), and articles that are in the SQL server database.

One area of the website has hundreds of really old magazines that have been scanned into searchable PDF documents. I really don't want to embed these PDF documents into my SQL database. But, I need to be able to search for a phrase and then see search results that includes the relevant documents. And, then, I want to be able to use "hit location" to jump to the specific point in the document.

If you imagine having a PDF document open and then pressing "Ctrl-F" (find) you will get an idea of what I would like to do.

Thanks!
McKnife,

Thanks for the suggestion regarding the search engine. I am still researching your suggestion.

The Microsoft Server is already indexing documents on the server. I can control which folders and files are indexed. Is there a way to tap in to this search index from a web page (using classic asp or a .NET application)?
"Is there a way to tap in to this search index from a web page (using classic asp or a .NET application)?" - to my knowledge: no.

Edit: correction: search server express 2020 sp1 is not end of life, yet, but will become on 13th of October, 2020.
There is no need to embed the documents to a database, just the data.  If they are searchable, you can grab the text content and store that to a database. That is what I was referring to.

One option as I suggested is to turn on indexing and set windows to index document content. Then you can use windows search to find documents. In windows file explorer, you would use the Search in the GUI. But you can do this via the command line as well using PowerShell.  For your classic asp page, you would create a powershell script with parameters that outputs results in some manner (text, json, xml, html etc). Then call the powershell script using vbscript.

The downside to this option is I believe indexing is going to slow down the server if this is also your webserver. If you do not have a large number of users, it may be fine.

Another option is to have a seachbox that uses google https://developers.google.com/custom-search/docs/tutorial/implementingsearchbox 

Or google custom search https://developers.google.com/custom-search 

Or store the files on google drive and use the drive api to find files https://developers.google.com/drive/api/v3/reference/query-ref.. For this option you will use a xmlhttppost to submit a GET to https://developers.google.com/drive/api/v3/reference/files/list just after you submit a post to get an auth token https://developers.google.com/identity/protocols/oauth2..

The easiest is going to be using the searchbox that opens up a new google page and only uses your page for results. Same is true for custom search, it is just a matter of setting it up.  
Thanks again for all of the feedback. It doesn't look like Windows has an easy and/or integrated way to achieve what I want. In previous versions of IIS and Windows I was able to use Microsoft's "Index Server" and it worked well. But, when I upgraded to Windows Server 2016 that feature is no longer available.

Microsoft's Sharepoint 2010 can probably do what I want but the EOL date is a concern. I am so tired of developing back-end code only to have Microsoft abandon the ability to use the code.

I came across a 3rd party software application made by Passmark. It appears to do what I want and it is compatible with IIS and Classic ASP.

https://www.zoomsearchengine.com/zoom/index.html

I think I will give it a try. It appears to be super easy to use and it has a GUI interface. Does anyone have any experience with this product?
No experience, but it sounds about right.
I have a feeling your solution is really the best option. But you can use the windows index, it is just that the way you search has changed. But that solution looks good.
ASKER CERTIFIED SOLUTION
Avatar of Wayne Harris
Wayne Harris

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Share your experiences with us after a while, please.