[xwiki-devs] [Wild Idea] Live Search
Hi, I think the new search results page (the main search one not the lucene one) has some limitations that could be improved: - it doesn't scale with large number of documents (if you do a search that returns a lot of documents) - it doesn't allow refining your search easily - the information presented take up more vertical space than needed (currently 3 lines instead of one) and thus less results can be presented - it could be reused by other pages which require listing documents such as the SpaceIndex which lists all pages in a given space. It's actually currently reused but as a consequence the SpaceIndex page isn't nice at all and doesn't scale. Would it make sense to: - have a livetable - display all docs by default when you arrive on the search page (ie no filter set) - make the current search field a field bound to the livetable and that filters that table when text is typed inside - remove the need for the spaces combo box since it would be a filter field in the livetable already - same for the wiki field Pros: - all the limitations listed above are resolved - the search becomes live (that's a + compared to other solutions since I haven't seen other apps do this) - it unifies the way we use livetable across XE - if we do this we could also modify the AllDocs page to have the global search field. Basically wherever we display documents we could also include this search field. Main Question: - would the live search be costly? With Lucene search probably not, with the DB search, it could (for ex if document content isn't indexed). WDYT? Thanks -Vincent
I have one single major con: a search result should be a concrete URL one that works well with the back button. I much dislike Curriki search which is doing something such and ours doesn't. (try the search boxes on http://i2geo.net (ours), and Curriki http://www.curriki.org/ ) The Lucene search can be enhanced to be more performant for this I think (lowering the amount of stored fields), it is known to be able to handle 1000-2000 requests a second. paul Le 17-juin-09 à 10:40, Vincent Massol a écrit :
Hi,
I think the new search results page (the main search one not the lucene one) has some limitations that could be improved: - it doesn't scale with large number of documents (if you do a search that returns a lot of documents) - it doesn't allow refining your search easily - the information presented take up more vertical space than needed (currently 3 lines instead of one) and thus less results can be presented - it could be reused by other pages which require listing documents such as the SpaceIndex which lists all pages in a given space. It's actually currently reused but as a consequence the SpaceIndex page isn't nice at all and doesn't scale.
Would it make sense to: - have a livetable - display all docs by default when you arrive on the search page (ie no filter set) - make the current search field a field bound to the livetable and that filters that table when text is typed inside - remove the need for the spaces combo box since it would be a filter field in the livetable already - same for the wiki field
Pros: - all the limitations listed above are resolved - the search becomes live (that's a + compared to other solutions since I haven't seen other apps do this) - it unifies the way we use livetable across XE - if we do this we could also modify the AllDocs page to have the global search field. Basically wherever we display documents we could also include this search field.
Main Question: - would the live search be costly? With Lucene search probably not, with the DB search, it could (for ex if document content isn't indexed).
WDYT?
Thanks -Vincent
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Yes, I second that. Now there are JS practices which can make it work, by updating the history of the browser in JS so that back works. Ludovic Paul Libbrecht a écrit :
I have one single major con: a search result should be a concrete URL one that works well with the back button.
I much dislike Curriki search which is doing something such and ours doesn't. (try the search boxes on http://i2geo.net (ours), and Curriki http://www.curriki.org/ )
The Lucene search can be enhanced to be more performant for this I think (lowering the amount of stored fields), it is known to be able to handle 1000-2000 requests a second.
paul
Le 17-juin-09 à 10:40, Vincent Massol a écrit :
Hi,
I think the new search results page (the main search one not the lucene one) has some limitations that could be improved: - it doesn't scale with large number of documents (if you do a search that returns a lot of documents) - it doesn't allow refining your search easily - the information presented take up more vertical space than needed (currently 3 lines instead of one) and thus less results can be presented - it could be reused by other pages which require listing documents such as the SpaceIndex which lists all pages in a given space. It's actually currently reused but as a consequence the SpaceIndex page isn't nice at all and doesn't scale.
Would it make sense to: - have a livetable - display all docs by default when you arrive on the search page (ie no filter set) - make the current search field a field bound to the livetable and that filters that table when text is typed inside - remove the need for the spaces combo box since it would be a filter field in the livetable already - same for the wiki field
Pros: - all the limitations listed above are resolved - the search becomes live (that's a + compared to other solutions since I haven't seen other apps do this) - it unifies the way we use livetable across XE - if we do this we could also modify the AllDocs page to have the global search field. Basically wherever we display documents we could also include this search field.
Main Question: - would the live search be costly? With Lucene search probably not, with the DB search, it could (for ex if document content isn't indexed).
WDYT?
Thanks -Vincent
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
------------------------------------------------------------------------
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Ludovic Dubost Blog: http://blog.ludovic.org/ XWiki: http://www.xwiki.com Skype: ldubost GTalk: ldubost
Which mostly are wrong in curriki search according to my opinion: - they don't cache properly - they add a step into the history at entry (so back out of search doesn't work) Curriki search uses, as far as I know, ExtJS. If such a JS artifact is used, it should be better than that. paul Le 17-juin-09 à 12:22, Ludovic Dubost a écrit :
Yes, I second that.
Now there are JS practices which can make it work, by updating the history of the browser in JS so that back works.
Ludovic
Paul Libbrecht a écrit :
I have one single major con: a search result should be a concrete URL one that works well with the back button.
I much dislike Curriki search which is doing something such and ours doesn't. (try the search boxes on http://i2geo.net (ours), and Curriki http://www.curriki.org/ )
The Lucene search can be enhanced to be more performant for this I think (lowering the amount of stored fields), it is known to be able to handle 1000-2000 requests a second.
paul
Le 17-juin-09 à 10:40, Vincent Massol a écrit :
Hi,
I think the new search results page (the main search one not the lucene one) has some limitations that could be improved: - it doesn't scale with large number of documents (if you do a search that returns a lot of documents) - it doesn't allow refining your search easily - the information presented take up more vertical space than needed (currently 3 lines instead of one) and thus less results can be presented - it could be reused by other pages which require listing documents such as the SpaceIndex which lists all pages in a given space. It's actually currently reused but as a consequence the SpaceIndex page isn't nice at all and doesn't scale.
Would it make sense to: - have a livetable - display all docs by default when you arrive on the search page (ie no filter set) - make the current search field a field bound to the livetable and that filters that table when text is typed inside - remove the need for the spaces combo box since it would be a filter field in the livetable already - same for the wiki field
Pros: - all the limitations listed above are resolved - the search becomes live (that's a + compared to other solutions since I haven't seen other apps do this) - it unifies the way we use livetable across XE - if we do this we could also modify the AllDocs page to have the global search field. Basically wherever we display documents we could also include this search field.
Main Question: - would the live search be costly? With Lucene search probably not, with the DB search, it could (for ex if document content isn't indexed).
WDYT?
Thanks -Vincent
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
------------------------------------------------------------------------
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
-- Ludovic Dubost Blog: http://blog.ludovic.org/ XWiki: http://www.xwiki.com Skype: ldubost GTalk: ldubost
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
Hi, Ideas similar to the one described below were discussed when working on XWiki's new search interface. Basically, I could summarize by saying that the things you label as "limitations" are actually conscious design choices ;-) Here are my comments: On Wed, Jun 17, 2009 at 10:40 AM, Vincent Massol <[email protected]> wrote:
Hi,
I think the new search results page (the main search one not the lucene one) has some limitations that could be improved: - it doesn't scale with large number of documents (if you do a search that returns a lot of documents)
Indeed. I've suggested a solution below
- it doesn't allow refining your search easily
Caty & I investigated this question. There are various options that allow tackling this issue. Here are a couple: - Add filters in columns (what the livetable currently does) - Add a single filter for all data (what iTunes currently does) - Add a "search within results" field (what Google currently does) It's interesting to note than when using that later field in Google, it runs a query that adds your additional words to the first query you ran: 1. You run a search on "XWiki Development" 2. You choose to search for "API" within those results 3. Google will return results for a search on "XWiki Development API" Users are currently familiar with the concept of refining their search query when the first batch of results they get isn't satisfying enough. Thus we thought that the best option was to provide users with the interface and the way of searching they were most familiar with. I definitely agree on the fact that as a power user that's not my ideal way of searching (I like the iTunes paradigm much better), but the default search interface aims at the majority of users and - the information presented take up more vertical space than needed
(currently 3 lines instead of one) and thus less results can be presented
This is not correct. Most of the time, people click on one of the top 3 search results they get on a page. This means they do not scroll much. 2 things really matter: - Each result has to encapsulate enough of the right information to let the user know whether the result matches his/her expectations - Each result be clearly identifiable and separated from the others This was not the case with the previous table-based interface. A table makes it harder to identify the different results. The current view improves contrast by turning each result in an easily scannable nugget of information. However, I do agree that the current view isn't enough. What we wanted to do was to add an extract of the page's relevant content (content matching the initial query), the way Google does it (they recently beefed up that feature to display longer content extracts btw). This will make it easier for an user to know whether the page behind a given result is what he / she is looking for. The "vertical space" argument assumes that the search will return a lot of results that the user will scroll through. The best way to answer it is to provide more relevant results on top to avoid the need of scrolling altogether. - it could be reused by other pages which require listing documents
such as the SpaceIndex which lists all pages in a given space. It's actually currently reused but as a consequence the SpaceIndex page isn't nice at all and doesn't scale.
About using the page to display results, I think the right approach to is is actually to build several data displayers that can be called by an application whenever it needs it. It would mean splitting the current XWiki.Results in several different pages that will address different needs. The way results are best presented in a search interface is not necessarily the way results are presented best. Therefore I think what we really need to do is to write different displayers: - A livetable displayer (macro) for data where the livetable is the best option - A list results displayer (macro) for search results - We could actually go as far as writing a search macro that would take object & space as parameters and return results only for documents having a given object / located in a given space -> that would be pretty useful for application developers - A widget displayer (macro) to display 5 items in a panel-like fashion - etc... This way users & developers can choose the displayer that makes the more sense to the application they're using / writing instead of having a single-view-fits-all-use-cases approach. Would it make sense to:
- have a livetable - display all docs by default when you arrive on the search page (ie no filter set)
2 comments: - The index page already does this and I think it's better to keep it separated from the search - The user expectation when arriving on a search page is that no results should be present when no query has been entered rather than the other way round - make the current search field a field bound to the livetable and
that filters that table when text is typed inside
That's what I referred to as the "iTunes-like" way of doing things above. Though I personally like it, Laurent convinced me that it's not what the majority of people are expecting online, specifically when it comes to search.
- remove the need for the spaces combo box since it would be a filter field in the livetable already
- same for the wiki field Ideally, results returned by the search right away are relevant enough to remove the need to filter by space / wiki. However, since we don't live in an ideal world, if we do not use the livetable we'd have to keep those fields. Pros:
- all the limitations listed above are resolved - the search becomes live (that's a + compared to other solutions since I haven't seen other apps do this) - it unifies the way we use livetable across XE - if we do this we could also modify the AllDocs page to have the global search field. Basically wherever we display documents we could also include this search field.
What about the benefits to end users? Searching is about finding. I think that what we must strive to achieve is to provide relevant search results on top for any given query. Advanced search options are nice, especially for power users, but they're not used frequently by most users and they do not meet the need of mainstream users. Thus I think we'd better fix search before building a fancy live interface :-) Main Question:
- would the live search be costly? With Lucene search probably not, with the DB search, it could (for ex if document content isn't indexed).
WDYT?
Thanks -Vincent
_______________________________________________
devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
My personal view is that rather than building a new fancy interface based on the livetable, there's 2 things we'd better do first: 1. Make XWiki's Lucene Search Backend work reliably 2. Merge both search pages to keep only a Lucene-based one This would solve the issues Vincent listed above: - Scalability (the lucene search is paginated) - Relevance (lucene search puts most relevant results up first) Plus it matches current users' expectations when it comes to search. Let met be clear: I'm all for experimenting with new, nicer, more powerful way to interact with data and filter it and I'm a livetable fan. However, I don't think it's the best choice for our default search interface right now and I think we've got other search-related issues to fix first before working in that direction. Guillaume -- Guillaume Lerouge Product Manager - XWiki Skype: wikibc Twitter: glerouge http://guillaumelerouge.com/
I would really enjoy different displayers. One more configurability point is to accept pre-made lucene-queries. paul Le 17-juin-09 à 11:46, Guillaume Lerouge a écrit :
Therefore I think what we really need to do is to write different displayers:
- A livetable displayer (macro) for data where the livetable is the best option - A list results displayer (macro) for search results - We could actually go as far as writing a search macro that would take object & space as parameters and return results only for documents having a given object / located in a given space -> that would be pretty useful for application developers - A widget displayer (macro) to display 5 items in a panel-like fashion - etc...
This way users & developers can choose the displayer that makes the more sense to the application they're using / writing instead of having a single-view-fits-all-use-cases approach.
Hi, First of all I would like to point again to the example: http://incubator.myxwiki.org/xwiki/bin/view/Main/ListWebSearch and proposal pages: http://dev.xwiki.org/xwiki/bin/view/Design/NewSearchInterface
I think the new search results page (the main search one not the
lucene one) has some limitations that could be improved: - it doesn't scale with large number of documents (if you do a search that returns a lot of documents)
The proposed search, just as the LiveTable has pagination.
- it doesn't allow refining your search easily
This will be done with Advanced Search, which is currently not implemented yet. See http://incubator.myxwiki.org/xwiki/bin/download/Mockups/SearchProposal+Searc.... The content of the advanced is just for demonstration, those will not be the final options. You also will have the Relevance in your right which will be the default sorting criteria. So you will not need to go thought pagination and hopefully find what you look for in the first screen (with a well implemented Lucene search). Also you can filter in one step by Date, Rating, Popularity (nr of comments). Also the proposal suggested a Quick Search in the Search field http://incubator.myxwiki.org/xwiki/bin/download/Mockups/SearchProposal+Searc.... All this are mechanisms that will help the user find his page without needing to browse to large number of documents and through the pagination. - the information presented take up more vertical space than needed
(currently 3 lines instead of one) and thus less results can be presented
The old interface was very cluttered and occupied many columns instead of lines. One big problem of it was the scalability of informations to be displayed, like number of comments, rating, relevance, author, date, attachments, page type, etc. There is no way you could display all this information using horizontal columns. The results in the example http://incubator.myxwiki.org/xwiki/bin/view/Main/ListWebSearch actually is occupying 5 lines, with the final line compressing 3 fields of information. The search you are talking about (the one with 3 lines) is not the final version of the proposal. Currently we don't have implemented the display of the context where the search word is located. When this will be available, the layout will expand in horizontal, but the scanability will be still great. In the Live Table case you need to scan horizontally and vertically to find what you are looking for. But the purpose of LiveTable is not search, but to compress large quantity of information. Keeping the current proposal for the Search, user will need to scan only vertically, finding more fast the information they were looking for. "thus less results can be presented" - the purpose of search is not the amount of data that is displayed, but the quality and relevance of it, because: Most of the time, people click on one of the top 3
search results they get on a page. This means they do not scroll much.
I agree with G:
2 things really matter:
- Each result has to encapsulate enough of the right information to let the user know whether the result matches his/her expectations - Each result be clearly identifiable and separated from the others
This was not the case with the previous table-based interface. A table makes it harder to identify the different results. The current view improves contrast by turning each result in an easily scannable nugget of information.
The "vertical space" argument assumes that the search will return a lot of results that the user will scroll through. The best way to answer it is to provide more relevant results on top to avoid the need of scrolling altogether.
- it could be reused by other pages which require listing documents
such as the SpaceIndex which lists all pages in a given space. It's actually currently reused but as a consequence the SpaceIndex page isn't nice at all and doesn't scale.
In my opinion the SpaceIndex that reuse the structure is not style at all. It doesn't at least have space between entries. So I don't think is a good example, for which to judge the Search layout.
- The user expectation when arriving on a search page is that no results should be present when no query has been entered rather than the other way round
display all docs by default when you arrive on the search page (ie no filter set)
or display the last search user did :P I also agree with: This would solve the issues Vincent listed above:
- Scalability (the lucene search is paginated) - Relevance (lucene search puts most relevant results up first)
Plus it matches current users' expectations when it comes to search.
Let met be clear: I'm all for experimenting with new, nicer, more powerful way to interact with data and filter it and I'm a livetable fan. However, I don't think it's the best choice for our default search interface right now and I think we've got other search-related issues to fix first before working in that direction.
Guillaume
Caty
Please also consider the MIT Simile-Widgets "Exhibit" toolkit, which can be used to great leverage in building search tools for Xwiki: http://code4lib.org/node/154 <-- Exhibit+Solr/Flare I've posted about Exhibit integration w/ Xwiki in the past. http://www.mail-archive.com/[email protected]/msg09435.html . (Introduction to Exhibit: http://www.ibm.com/developerworks/web/library/wa-realweb6/ or http://www.linux.com/archive/feature/118440 ) One of the big advantages is that Exhibit took care of a lot of the "hard work" so you can concentrate more on application specifics and how exactly you want it to look. This includes portability that comes from wide use and application of Exhibit 1.0->2.+ - mature and stableand opensource. It also includes some of the tedious details such as proper implementation of "forward" and "back" in the browser -- it doesn't navigate between pages, but automatically remembers to move forward or back in your search refinements (assuming you use exhibit for a faceted search UI). I'm beginning to think that it's more reasonable to mostly avoid HTML as anything other than the language that defines templates and overall layout, and then have all the interior "UI Widgetry" created dynamically in JS. The server ends up setting up the appropriate "page-templates" (HTML) initially, and then sends over a blob of JSON to describe the page's initial state/data/etc; and the abstract data is rendered into a UI via javascript. This level of abstraction, as implemented by Exhibit 2.0, has the advantage of enabling easier translation of a UI for different displays, e.g. mobile/iphone versus desktop/web. I believe there is an Iphone version of exhibit available or being worked on at simile.MIT.edu . As such, Exhibit is a very interesting "UIMS" -- user interface management system -- with unusual flexibility: something I've been wanting for a very long time http://nielsmayer.com/L18623-5228TMP.pdf :-) Exhibit's advantage in a search engine is that the engine would just return a UI-independent blob of structured data, and you could have multiple different ways of displaying this search data in a framework like exhibit. Alphabetically, with thumbnails, on a timeline, on a histogram, scatterplot, etc: see examples at http://www.simile-widgets.org/exhibit/ to get an idea of the kinds of displays possible. Then find the "see JSON data" to get an idea of the abstract data driving the application. For example this JSON: http://www.simile-widgets.org/exhibit/examples/nobelists/nobelists.jsproduce... this UI via Exhibit: http://www.simile-widgets.org/exhibit/examples/nobelists/nobelists.html Niels http://nielsmayer.com On Wed, Jun 17, 2009 at 1:40 AM, Vincent Massol <[email protected]> wrote:
Hi,
I think the new search results page (the main search one not the lucene one) has some limitations that could be improved: - it doesn't scale with large number of documents (if you do a search that returns a lot of documents) - it doesn't allow refining your search easily - the information presented take up more vertical space than needed (currently 3 lines instead of one) and thus less results can be presented - it could be reused by other pages which require listing documents such as the SpaceIndex which lists all pages in a given space. It's actually currently reused but as a consequence the SpaceIndex page isn't nice at all and doesn't scale.
Would it make sense to: - have a livetable - display all docs by default when you arrive on the search page (ie no filter set) - make the current search field a field bound to the livetable and that filters that table when text is typed inside - remove the need for the spaces combo box since it would be a filter field in the livetable already - same for the wiki field
Pros: - all the limitations listed above are resolved - the search becomes live (that's a + compared to other solutions since I haven't seen other apps do this) - it unifies the way we use livetable across XE - if we do this we could also modify the AllDocs page to have the global search field. Basically wherever we display documents we could also include this search field.
Main Question: - would the live search be costly? With Lucene search probably not, with the DB search, it could (for ex if document content isn't indexed).
WDYT?
Thanks -Vincent
_______________________________________________ devs mailing list [email protected] http://lists.xwiki.org/mailman/listinfo/devs
participants (6)
-
Ecaterina Valica -
Guillaume Lerouge -
Ludovic Dubost -
Niels Mayer -
Paul Libbrecht -
Vincent Massol