News:

VC = Vox = VoxCommando
EG = EventGhost
WMC = Windows Media Center
WSR = Windows Speech Recognition

Main Menu

Rebuilding

Started by bp_pbs, July 17, 2013, 07:34:41 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

bp_pbs

So I added search movies by actors. But now VC has been stuck on rebuild for almost 2 days. :(  How can I get it to either speed up on the rebuild or end?


jitterjames

It shouldn't take more than a few minutes.

You can use task manager to end the process.

If you try to restart VC and it freezes again for more than a few minutes, then take a look at your actor XML.  If necessary you can rename the XML file and try to restart VC again.

If you think the XML is the cause you can send me the renamed XML file so I can have a look at it.

bp_pbs

Got it to work. Had to reinstall Vox to another folder and copy over my old Vox info. :bonk


jitterjames

If that's all it was then deleting the contents of the srgs folder would probably have fixed it.

bp_pbs

Alright James I'm convinced it has to be the XML. Have tried 10 times. everything works until I Generate XML for MovieActors and restart.


File to big had to add it to dropbox

https://www.dropbox.com/sh/9lcy9rjdq5sk2zi/4DOQYv1A18

jitterjames

#5
Looks like about 45000 actors, which is quite a lot!  I guess you have 4 or 5 thousand movies?

Here are some things you can try to trim it down.

In the xSql settings, find the row for actors.

Turn OFF submatch.  You will need to say the whole actor name, but that kind of makes sense for actors anyway.

You can also change the sql query to look like this:

select idActor,strActor from actors where idActor in (select idActor from actorlinkmovie where iOrder<5)

this will only use the 5 leading actors from each movie, instead of all the actors.  Some movies will list something like 60 actors that you've probably never heard of.

I would guess that you probably only have about 10 to 20 favourite actors that you would ever ask for by name, and you can always edit your list manually to get it down something a bit more reasonable than 45000.

Another option would be to edit the sql to return only actors that appear in at least 4 of your movies (or something like that) but the sql query is more complicated and I haven't figured it out yet.

bp_pbs

I only have 1000+ movies  ;D . But MyMovie.dk pulls all the movie information.

I'm going to try that top 5 actors. That should work for me since I can't remember every actor name..lol

Thanks James

jitterjames

Just remember that will be all actors from all movies, as long as they were one of the top 5 actors listed.  So you will still get a lot of actors.

Here is the SQL that will return:  "only actors that appear in 4 or more of the movies in your collection".  This is probably going to be a shorter list.  The SQL I came up with is probably terrible, but it seems to work.  I was OK at SQL back when I was in university but that was a very long time ago...  :'(

select * from (SELECT actors.idActor, actors.strActor, COUNT(actors.idActor) as Count FROM actorlinkmovie LEFT JOIN actors ON actorlinkmovie.idActor=actors.idActor GROUP BY actors.idActor ORDER BY Count DESC) where Count>3

jitterjames

#8
Oh, and here's a really great way to do it.  This sql query will sort actors by the number of movies they are in and then you can take only the top 100 most popular actors form the list.  To return more actors, just change the 100 to something else.

SELECT actors.idActor, actors.strActor, COUNT(actors.idActor) as Count FROM actorlinkmovie Natural JOIN actors GROUP BY actors.idActor ORDER BY Count DESC limit 100

ooooops, that returns 3 columns which is bad.  We need only 2 columns (1 for value and 1 for the phrase)
This should work:
SELECT idActor, strActor from (SELECT actors.idActor, actors.strActor, COUNT(actors.idActor) as Count FROM actorlinkmovie Natural JOIN actors GROUP BY actors.idActor ORDER BY Count DESC limit 100)

It is sad how happy this makes me.  :biglaugh

jitterjames

For the record, I decided to the use last SQL statement in my setup, but I set the limit to 300.  I turned sub-match back ON.

Now it works really well.  300 is nothing for VC and I can ask for any actor that I can think of really, using either their first or last name, and it will find them, or show them in my alternates.

bp_pbs

I'm the same with SQL. ;D .

So that last query did work for me.
I guess I have to do the same for Songs as well. Since I have 40K of them. SMH. Might just have to remove the Song xml unless I do the top rated songs.

jitterjames

If your songs are rated I would use that, or you could probably use playcount.  If you've never played it, then you probably aren't going to ask for it...

then again if you never use this feature then you should ditch it completely because it does waste resources.

bp_pbs

Thanks for your help James