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<enygma2002(a)gmail.com
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/xwi…
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
> [4]
>
>
https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwi…
>
>
> On Tue, Jul 19, 2011 at 8:36 AM, 许凌志(Jamesxu)<lingzhixu326(a)gmail.com
>> 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…
<
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
> <
>
http://localhost:8080/xwiki/bin/get/XWiki/SuggestLuceneService?outputSyntax…
>>
>> "
>> 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
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
devs(a)xwiki.org
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