Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

In one of my projects, I have data for hotels, and other booking sites are able to book this hotel. For example:

Hotel A - Booking (ID = 4002), Expedia (ID = 123), Priceline (ID = 147)

The three booking engines each uses their own Id to reference to Hotel A. I would need to check manually and make the right reference to the hotel. If I have 100,000 hotels, I have to check manually 300,000 (considering 3 booking sites) times?

They might provide API, then I can cross check the name, address or latitude/longitude, but if they differ a little bit then I might give the wrong reference to the wrong hotel.

I'm sure there are better ways to do this. There are many travel sites out there which do hotel price checking on many booking sites, but how do they do to make sure they are checking the right hotel on these booking sites?

Anyone has any experience on this?

share|improve this question
1  
I can't say if there are any better databases, but from some experience with a restaurant search engine I wrote once for a company I can tell you that in fact there is a lot of manual work in such databases. Cross referencing will get away a lot of the easy cases, but there will be quite some left you have to manually correct. This kind of data can be a valuable resource for a company and they may even take steps to protect it (eg insert non existing hotels to see who shows those on his site). –  thorsten müller Sep 22 '13 at 20:22
add comment

1 Answer

If I have 100,000 hotels, I have to check manually 300,000 (considering 3 booking sites) times?

No. That would not be the best way to do it.

They might provide API, then I can cross check the name, address or latitude/longitude, but if they differ a little bit then I might give the wrong reference to the wrong hotel.

You have the right idea.

Here is what you need to do:

  1. "Clean" the incoming addresses with an address normalizer service.

    Here's a Stackoverflow question to get you started, but you can find much more information through Google.

  2. Anticipate that the address normalizer service will not be a silver bullet.

    Emphasis: You may need to link/resolve a very small number of addresses on your own.

  3. When all addresses have been normalized/linked, you can create a linking table in your database so that you can translate addresses to codes for each booking site.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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