2011/7/20 Marius Dumitru Florea <[email protected]>

> Hi James,
>
> On 07/20/2011 11:08 AM, 许凌志(Jamesxu) wrote:
> > Thanks Eduard very much, It is really helpful, today I am trying to use
> > SuggestLuceneService to test the autosuggestion functions, I found a
> > problem.
> >
> > For example, I create a page named "jamesxu", and upload an attachment
> named
> > "autosuggest1.js", then I input the query "jame" to the search box on the
> > top right of the page, the suggestion list shows up, but the results in
> the
> > "Document Name" and "Document Content" contains both the wiki page
> "jamesxu"
> > and its attachment "autosuggest1.js", this behaviour is not excepted in
> the
> > autosuggestion features of the editor, because when user types "jame“, he
> > really wants to query the wiki page or attachment begin with  or contains
> > "jame",  the attachment "autosuggest1.js" does not contains "jame", it
> > should not be included in the suggestion results.
>
> I believe this is a bug in the SuggestLuceneService code that you could
> try to fix. You shouldn't discard existing code just because it has a
> few bugs. XWiki is an open source project and your contribution outside
> of the GSoC program is more than welcome.
>

Yes, I am considering use Xwiki.search for autosuggestion, and I am glad to
fix this bug, but Could anyone  give me some information about how to fix
it, because I am not very familiar with Lucene and also the index structure
of  xwiki.

I am also re-considerting about the rest service, I have tested it yet, it
seems works well for autosuggestion, and no bugs have found yet, the
attachment search is really good and useful too.

And I am also considering that the image autosuggestion and macro
suggestion, we will not use lucene, but they will still be retrieved by rest
service, if any.

So till now, I prefer rest services though the page rest service and
attachment rest service can not merge to a single service.

>
> The way you want to rank search results is generic and I would love to
> see it used on the default XWiki search, which is pretty bad right now
> (not because of Lucene, but because of the way we use Lucene, as I've
> been told).
>
> Thanks,
> Marius
>
> >
> > On Tue, Jul 19, 2011 at 10:14 PM, Eduard Moraru<[email protected]
> >wrote:
> >
> >> Hi James,
> >>
> >> I agree with Marius that you should reuse as much as possible what
> already
> >> exists instead of creating an alternate service that does, in a great
> >> proportions, the same as an existing one but has one extra feature.
> >>
> >> So, as I was browsing trough REST's resources, I noticed an undocumented
> >> "/wikis/{wikiName}/attachments" [1] resource at the wiki level that is
> able
> >> to search for attachments. As you can see from the method's signature,
> it
> >> accepts parameters to filter your search by attachment name, page,
> space,
> >> author, and type. I will fix the REST API documentation and include it.
> >>
> >> This resource should do the trick for what you need, used in conjunction
> >> with the search resource that should handle documents.
> >>
> >> The advantage of this is that you can get json, as you did for the
> search
> >> resource.
> >> The disadvantage of the whole REST API, for your needs, might be that it
> is
> >> limited at wiki level and can not perform a multi-wiki search in one
> query
> >> (wihout you having to do a search for each wiki).
> >>
> >> On the other side, the Lucene search does not have this problem because
> it
> >> indexes all the wikis and can perform searches on all wikis in one query
> >> and
> >> it does it much faster than REST (which uses database queries). Also,
> >> lucene
> >> is used in the search suggest (the one at the top-right corner of the
> >> screen) and in the main XWiki search as well, so it would be much better
> if
> >> the results were consistent. Besides this, if the lucene system is
> improved
> >> over time, your results will also be improved as a result.
> >>
> >> So my suggestion is that you modify XWiki.SuggestLuceneService and make
> it
> >> accept a "media" parameter (or something similar) that should accept at
> >> least 2 values: "xml"(default) and "json". Based on this value, you can
> >> wrap
> >> the results of the lucene search into a basic json structure that you
> can
> >> easily use in your suggest box. You can check [2][3] and [4] for
> references
> >> of how to use Lucene search in XWiki.
> >> Once you are done with it, you can even do a pull request so that this
> >> feature gets integrated into XWiki.
> >>
> >> The best and cleanest solution would be that the REST search resource
> used
> >> internally lucene instead of a custom database query and that there
> would
> >> be
> >> a single search back-end (preferably configurable in administration).
> >> Anyway, it's not your job to fix XWiki :) so making
> >> XWiki.SuggestLuceneService return json too is the best way to go right
> now,
> >> IMO.
> >>
> >> Thanks,
> >> Eduard
> >>
> >> -----------------
> >> References:
> >> [1]
> >>
> >>
> https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-rest/xwiki-platform-rest-server/src/main/java/org/xwiki/rest/resources/wikis/WikiAttachmentsResource.java
> >> [2] http://extensions.xwiki.org/xwiki/bin/view/Extension/Lucene+Plugin
> >> [3]
> >>
> >>
> https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-lucene/src/main/java/com/xpn/xwiki/plugin/lucene/LucenePluginApi.java
> >> [4]
> >>
> >>
> https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-search/xwiki-platform-search-lucene/src/main/java/com/xpn/xwiki/plugin/lucene/SearchResult.java
> >>
> >>
> >> On Tue, Jul 19, 2011 at 8:36 AM, 许凌志(Jamesxu)<[email protected]
> >>> wrote:
> >>
> >>> Hi, these days I need to implement the rest services for getting
> >> suggestion
> >>> results for link autosuggestion. In my design, I think the suggestion
> >>> results should be filtered and ranked by the following conditions.
> >>> (for example user types "[[mytest" in page "xwiki:main.newpage")
> >>> First [[ is triggered, when user keep typing, the page and attachment
> >>> suggestion results should be filtered and ranked by the following
> rules:
> >>> 1. Prefix matched (only for page name and attachment name)
> >>>    - The pages which are in the same wiki and space of the document
> >> current
> >>> edited.( Prior A)
> >>>    - The pages which are in the same wiki but different space of the
> >>> document current edited;(Prior B)
> >>>    - The pages which are in different wiki and different space of the
> >>> document current edited; (Prior C);
> >>> 2. Partial matched (only for page name and attachment name)
> >>>    - The pages which are in the same wiki and space of the document
> >> current
> >>> edited.( Prior C)
> >>>    - The pages which are in the same wiki but different space of the
> >>> document current edited;(Prior D)
> >>>    - The pages which are in different wiki and different space of the
> >>> document current edited; (Prior E)
> >>> 3. If no page and attachment matches the above two rules,  the
> suggestion
> >>> box will be disappeared.(eclipse way)
> >>>
> >>> However, sometimes user might insert the space name too, for example,
> >> user
> >>> will type "[[Main", following the rule 1 and rule 2, the pages begins
> >> with
> >>> "Main" will be first retrieved as the suggestion results untill user
> >> types
> >>> "." after "Main", the suggestion result will be retreved from the pages
> >>> under the space "Main" only. Filters still obey the above three rules.
> >>> And also when user types "attach:", the suggestion result will be
> >> retrieved
> >>> the attachments only following the above three rules.
> >>> And if the link is under the attachment context, when "@" is typed, the
> >>> attachments only will be retrieved following the above three rules.
> >>>
> >>> In order to do this, I investigated the rest services already existed(
> >>> http://platform.xwiki.org/xwiki/bin/view/Features/XWikiRESTfulAPI),
> but
> >> I
> >>> found none is perfect suitable for my needs. So I talk with Marius, he
> >>> suggested me to use the existed services which are closed to my needs
> >>> first,
> >>> and then write the perfect one later.
> >>>
> >>> However, I only found the rest service:/wikis/{wiki}/search  is the
> most
> >>> closed one for the pages suggestion to my needs, there is no attachment
> >>> search rest service for attachment suggestion, Marius adviced me to use
> "
> >>>
> >>>
> >>
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb={number}&input={query}<http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D>
> <
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D
> >
> >> <
> >>
> http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax=plain&query=name:__INPUT__*%20AND%20type:attachment&nb=%7Bnumber%7D&input=%7Bquery%7D
> >>>
> >>> "
> >>> instead, but I found the search result is in xml format(not json), and
> >> also
> >>> the information of the results got from SuggestLuceneService is limit.
> >>>
> >>> I have read the document of how to write custom rest service, but the
> >>> information is limit, any one can guide me to run an helloworld?
> >>>
> >>>
> >>>
> >>> --
> >>> Best wishes,
> >>>
> >>> 许凌志(Jame Xu)
> >>>
> >>> MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University
> >>>
> >>> Department of Computer Science and Technology, Xi’an Jiaotong
> University
> >>> _______________________________________________
> >>> devs mailing list
> >>> [email protected]
> >>> http://lists.xwiki.org/mailman/listinfo/devs
> >>>
> >> _______________________________________________
> >> devs mailing list
> >> [email protected]
> >> http://lists.xwiki.org/mailman/listinfo/devs
> >>
> >
> >
> >
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
>



-- 
Best wishes,

许凌志(Jame Xu)

MOE KLINNS Lab and SKLMS Lab, Xi'an Jiaotong University

Department of Computer Science and Technology, Xi’an Jiaotong University
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to