After the performance problems we have run into with Lucene.NET we've decided to make a change, we're moving the network on to elasticsearch.
Here's where to get started: https://stackoverflow.com/search
What works:
- All search operators should be in
- Many changes below from the old search behavior
What's different:
- The new search is AND, adding a search term will narrow your results, not expand them.
- The look of search results is now more unified with the following differences between Q&A:
- "Q:" or "A:" prefix
- Answer counts and tags will be present in questions.
- The answer count will be highlighted in green if it's accepted.
- (We may index other things later, that's why the results are more generic/google-y now.)
- It's faster, about 5-10x faster for almost all searches on large sites like Stack Overflow
- Quoted phrases are exact matches except for case-sensitivity, for example, you can search for code or symbols.
- If not in a quoted phrase, words will now be stemmed (example)
- Snippets for context will now be more relevant
- Excludes are now explicitly supported (like
-term
and-"my phrase"
) - We don't roll up to the question anymore, if you searched for something that matched an answer, we'll show you the answer directly in search results
- The search per minute limit is effectively gone, it'll block a bot, but no one else should hit it... We'll be monitoring performance though
infavorites:mine
is back, withinfavorites:12345
(any user id) added
What needs work:
- What you tell us is broken... Do your worst.
Testing, not yet final:
- New range support, here are some examples:
answers:1..1
(exactly one answer)answers:10..20
(10 to 20 answers)created:2008..2009
(created between Jan 1st, 2008 and Dec 31, 2009)created:2010-04..2010-05
(created between April 1st, 2010 and May 31st, 2010)created:2011-01-05..2011-01-06
(to be clear: it goes to end-of-day)- This range syntax applies to a new advanced operator:
lastactive:
and the other numerical ranges,views:
, andscore:
Additionally, the above syntax is a bit more flexible if you forget it exactly (e.g.score:20-30
) in an effort to be intuitive as possible, give it a try - tell us what you think.
I'll try and improve the search as much as possible before it becomes default... At the very least we want it equivalent in relevance and functionality before the switch, but ideally much better. We won't switch until then.
Please give it a try, tell us what you think here, and we'll continually improve it over the holidays as time allows. Bear in mind you may get a search offline page during this test if a change we're making for results necessitates a reindex, and even that should only last about two minutes here on Meta Stack Overflow.
Give it your worst, compare results to the old search, tell us what's better and what's not. We look forward to the feedback.
Update The new search is now the default across the network - we'll be monitoring things over the next few days and would appreciate reports of any crazy behavior you see here.
..#
might be nice forall <= #
too, if possible. Likescore:..#
orcreated:..2009
, so I don't have to guess what the minimum value is (or be lazy for operators with minimum value 0)