I am implementing a Content Enrichment Web Service and so far, so good.

But I was wondering if it was possible: To return a byte stream to the search engine instead of a type in a managed property.

To be clearer I explain my situation.

  • I Am Crawling into a SQL DB
  • At some point, i find a field containing a URL
  • the trigger sends the URL to the Content Enrichment Web Service
  • now I get the pdf document and extract text from it
  • return the text into a Managed Property

Is there a better way to do it? Can i return the whole document to crawl ( as if it was from file system ) instead of the parsed text?


Using an external content type or custom connector is the best way here. For external content type look at https://msdn.microsoft.com/en-us/library/office/ff634782(v=office.14).aspx which explains how to get started.

For a custom connector, you could can Microsoft Consulting Services to get access to the Search Indexing Toolkit, which has samples with it. Not very hard to get up and running, and can perform even better than ECT's.

  • as i said above, i already made an external content type, configured Secure store ecc But i don't have the document ( BLOB ) on the DB, i only have the URL – Fabrizio Chionni Aug 29 '17 at 15:20

If you are trying to index items from a database, you should use an external content type. The ECT can return the document to the indexer for full text indexing. This is significantly faster than using CEWS.

  • The problem is that i don't have the document, i only have its URL i am crawling a DB with ( for example ) Name, Section, Area, DocURL i have to go to that URL, parse the document and make its content available to search. – Fabrizio Chionni Aug 29 '17 at 15:16
  • 1
    If you have the URL couldn't you pass it in a StreamAccessor and allow the doc to be indexed? You could also return the Document URL as the actual link or as a property for use in a Display Template. – Matthew McDermott Aug 29 '17 at 17:09
  • 1
    Then a custom connector most likely is the most efficient approach, which is what SIT is. But the fetch over http might be the slowest in launching content enrichment, so maybe enrichment is good enough. Just set the trigger to only process what you need. – Mikael Svenson Aug 29 '17 at 20:16
  • @MatthewMcDermott could you please explain this streamaccessor, if you have any pointers on how to do this would greatly help me. – John Zachariah Sep 3 '17 at 6:59
  • Mikael's link below has the information. You need to learn how to write an ECT. This is the best book on the topic ever written: amazon.com/… – Matthew McDermott Sep 3 '17 at 12:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.