Page MenuHomePhabricator

improve suggestions while typing
Closed, ResolvedPublic

Description

One big wish from me:
Could you enable the suggestions while typing not only for the first word but also for the following words. In Sphinx this always was a great feature!

Example:

You start in typing: Tom Clancy
The suggestions for Tom Clancy will pop up immediately.

BUT: when you start in typing: Clancy
It would be great if the search also suggested "Tom Clancy", so if it also looked at the beginning of the second, third, and so on word.


Version: master
Severity: enhancement
OS: Linux
Platform: Other

Details

Reference
bz54974

Event Timeline

bzimport raised the priority of this task from to Medium.Nov 22 2014, 2:12 AM
bzimport added a project: CirrusSearch.
bzimport set Reference to bz54974.

I believe I had it working this way when I was first developing the feature but ended up changing it to match the behavior that we have in production now. I'd be happy to add that way as an option.

This feature as an "option" would be just perfect! You made my day.
Thank you...

Hello Nik,
any news on my "feature request"? I would be very happy if this was implemented and I think it would be a great improvement!

I keep meaning to get to this but getting pulled in other directions. I'll get a start on it this morning.

:-) thank you. I just wanted for you not to forget it....

Almost got it. I'm running my regression tests to make sure I didn't change the default behaviour.

A note about testing this: those prefix queries have a super long ttl so you'll have to clear your cache.

At this point it is pretty liberal. The following match "Main Page":
main page
ma page
m p
page
p

Which I think is super fun but not for everyone. Is that what you want? Every "word" starts a new prefix match which can match any "word" in the title. The definition of "word" is important here because it'll vary from language to language.

Change 90150 had a related patch set uploaded by Manybubbles:
Optionally enable sloppy prefix matching

https://gerrit.wikimedia.org/r/90150

While I've added uploaded a patch for this I'd like to make sure that you are ok with the very liberal matching.

Wow. It works!! GREAT! I am impressed. Thank you Nik.

Suggestion/question: can the amount of letters that have to be typed in before the search starts suggestions be set to e.g. 2?

The amount of letters per word or the amount of letters total or the amount of letters excluding spaces?

ok here we go:

I am looging for "main page".

So I either start typing: ma or pa (e.g. 2 letters)
At the moment it starts suggestions when I enter m or p (only one letter)

Thats what I meant...
I would never type in "m p".

????? I would never ever search like that. so... lets say: "the amount of letters total".

Can those be set. ATM they are at 1, right?

Thank you Nik!

Change 90150 merged by jenkins-bot:
Optionally enable sloppy prefix matching

https://gerrit.wikimedia.org/r/90150

Hallo Nik, the sloppy prefix matching stopped working. I do dot know exactly when but with 4a3254f it is definitely gone :-(
I use "$wgCirrusSearchPrefixSearchStartsWithAnyWord = true;" in the LocalSettings.php.
This must have happened 1-2 weeks ago and I did not immediately notice it.

I'll have a look at it when I get a chance. Sorry about that. I wish I had a way to include stuff like this in the regression tests but they only test a single configuration. I'll think about that as well.

I just tried it and it works for me. Steps:

  1. Set $wgCirrusSearchPrefixSearchStartsWithAnyWord = true;
  2. cd /srv/mediawiki/extensions/CirrusSearch
  3. php maintenance/updateSearchIndex.php
  4. php maintenance/forceSearchIndex.php --forceUpdate

Let me know if that works.

  1. php maintenance/updateSearchIndex.php does not exist. Did you mean: php maintenance/updateSearchIndexConfig.php

to I did this:
php updateSearchIndexConfig.php --reindexAndRemoveOk --indexIdentifier now
php forceSearchIndex.php --forceUpdate

I am on MW 1.22.0 and CirrusSearch (4a3254f) 21:24, 18. Dez. 2013
Elasticsearch 0.90.9

Still no luck.....

I also tried downloading a different version of CirrusSearch via the MediaWiki.org homepage. But this has been broken for some time now:
https://www.mediawiki.org/wiki/Special:ExtensionDistributor/CirrusSearch

I will no do it the "old fashioned way" via git ;-)

(In reply to comment #20)

  1. php maintenance/updateSearchIndex.php does not exist. Did you mean: php

maintenance/updateSearchIndexConfig.php

Yup. Sorry.

(In reply to comment #22)

I also tried downloading a different version of CirrusSearch via the
MediaWiki.org homepage. But this has been broken for some time now:
https://www.mediawiki.org/wiki/Special:ExtensionDistributor/CirrusSearch

I will no do it the "old fashioned way" via git ;-)

Funky. I'll bother someone that knows more about this stuff.

(In reply to comment #21)

to I did this:
php updateSearchIndexConfig.php --reindexAndRemoveOk --indexIdentifier now
php forceSearchIndex.php --forceUpdate

I am on MW 1.22.0 and CirrusSearch (4a3254f) 21:24, 18. Dez. 2013
Elasticsearch 0.90.9

Still no luck.....

Let me try it on 1.22. Maybe something is busted there. I was lazy and tried it on master.

So I now checked out REL 1.22 for Elastica and also for CirrusSearch.
After reindexing now the searchpage goes completely blank :-(
I think there is something wrong with REL1.22 of CirrusSearch. I will revert to an older release for now...

(In reply to comment #23)

Let me try it on 1.22. Maybe something is busted there. I was lazy and
tried it on master.

Tried it on 1.22 and it worked.

MediaWiki: 3603adfad5a8dc144dca09d8b2c63291500302b9
CirrusSearch: ef02cfae825849890035d38f250f122937f4dde7

Any chance you have TitleKey installed? It breaks Cirrus unless handled in hacky ways: http://git.wikimedia.org/blob/operations%2Fmediawiki-config.git/4e1dda797a87cf021f65a9e8bed48b26793b32dc/wmf-config%2FCommonSettings.php#L889
Fear not though because Cirrus has recently implemented all of TitleKey's functionality against Elasticsearch rather than MySQL.

(In reply to comment #24)

So I now checked out REL 1.22 for Elastica and also for CirrusSearch.
After reindexing now the searchpage goes completely blank :-(
I think there is something wrong with REL1.22 of CirrusSearch. I will revert
to
an older release for now...

Did it log an error message in the apache error log? If so, please post it here. Sorry that I didn't mention that you need to update Elastica as well.

nope, I did not have TitleKey installed. Now after updating to CirrusSearch 1.22 and Master of Elastica this works again. Is i posted in the other bug Elastica for 1.22. is broken.

The problem with the blank page seems to have been an old Elastica version. Also gone now! ;-)

Thank you Nik for looking into this.